From 2b3208784322682178c15acf2c50682408dcce98 Mon Sep 17 00:00:00 2001 From: Ralf Comtesse Date: Sun, 5 Oct 2025 21:16:47 +0200 Subject: [PATCH] before cleanup without java tests --- scala/.gitignore | 2 + scala/build.sbt | 3 +- .../gildedrose/GildedRoseApprovalTest.java | 38 ------------- .../GildedRoseApprovalTestInScala.scala | 55 ++++++++++--------- .../com/gildedrose/TexttestFixture.scala | 10 ++-- 5 files changed, 38 insertions(+), 70 deletions(-) delete mode 100644 scala/src/test/scala/com/gildedrose/GildedRoseApprovalTest.java diff --git a/scala/.gitignore b/scala/.gitignore index f6e0eff3..00610921 100644 --- a/scala/.gitignore +++ b/scala/.gitignore @@ -1,4 +1,6 @@ /bin/ +lib +project # OSX Finder .DS_Store diff --git a/scala/build.sbt b/scala/build.sbt index dddac539..c7ab2489 100644 --- a/scala/build.sbt +++ b/scala/build.sbt @@ -11,8 +11,7 @@ lazy val root = project "com.approvaltests" % "approvaltests" % "25.4.3" % Test, "junit" % "junit" % "4.13.2", "com.github.sbt.junit" % "jupiter-interface" % "0.15.1" % Test, - // todo: comment about 5.8.0 - "org.junit.jupiter" % "junit-jupiter" % "5.7.0" % Test + "org.junit.jupiter" % "junit-jupiter" % "6.0.0" % Test ), testOptions += Tests.Argument(TestFrameworks.JUnit) diff --git a/scala/src/test/scala/com/gildedrose/GildedRoseApprovalTest.java b/scala/src/test/scala/com/gildedrose/GildedRoseApprovalTest.java deleted file mode 100644 index d71d1960..00000000 --- a/scala/src/test/scala/com/gildedrose/GildedRoseApprovalTest.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.gildedrose; - -import org.approvaltests.Approvals; -import org.approvaltests.reporters.DiffReporter; -import org.approvaltests.reporters.UseReporter; -import org.junit.jupiter.api.Test; - -import java.io.ByteArrayInputStream; -import java.io.ByteArrayOutputStream; -import java.io.PrintStream; - -@UseReporter(DiffReporter.class) -public class GildedRoseApprovalTest { - - @Test - public void foo() { - - Item[] items = new Item[]{new Item("foo", 0, 0)}; - GildedRose app = new GildedRose(items); - app.updateQuality(); - - Approvals.verifyAll("Items", items); - } - - @Test - public void thirtyDays() { - - ByteArrayOutputStream fakeoutput = new ByteArrayOutputStream(); - System.setOut(new PrintStream(fakeoutput)); - System.setIn(new ByteArrayInputStream("a\n".getBytes())); - - String[] args = {"30"}; - TexttestFixture.main(args); - String output = fakeoutput.toString(); - - Approvals.verify(output); - } -} \ No newline at end of file diff --git a/scala/src/test/scala/com/gildedrose/GildedRoseApprovalTestInScala.scala b/scala/src/test/scala/com/gildedrose/GildedRoseApprovalTestInScala.scala index b1755aea..117d1656 100644 --- a/scala/src/test/scala/com/gildedrose/GildedRoseApprovalTestInScala.scala +++ b/scala/src/test/scala/com/gildedrose/GildedRoseApprovalTestInScala.scala @@ -1,33 +1,38 @@ -package com.gildedrose +package com.gildedrose; -import org.scalatest.flatspec.AnyFlatSpec -import org.scalatest.matchers.should.Matchers +import org.approvaltests.Approvals +import org.approvaltests.reporters.DiffReporter +import org.approvaltests.reporters.UseReporter +import org.junit.jupiter.api.Test -import java.io.{File, FileOutputStream} -import scala.io.Source +import java.io.ByteArrayInputStream +import java.io.ByteArrayOutputStream +import java.io.PrintStream + @UseReporter(Array(classOf[DiffReporter])) +class GildedRoseApprovalTestInScala { -class GildedRoseApprovalTestInScala extends AnyFlatSpec with Matchers { - ignore should "return the result of the golden master" in { - val fileWithTestResult = new File("approvaltests/gildedrose.testresult.txt") - val outputStream = new FileOutputStream(fileWithTestResult) - Console.withOut(outputStream) { + @Test + def foo(): Unit = { - TexttestFixture.main(Array("30")) - } + val items: Array[Item] = Array(new Item("foo", 0, 0)) + val app: GildedRose = new GildedRose(items); + app.updateQuality(); - val approvedFile = "approvaltests/gildedrose.approved.txt" - val sourceForTestResults = Source.fromFile(fileWithTestResult) - val sourceForApprovedFile = Source.fromFile(approvedFile) - - val resultingOutput = - try sourceForTestResults.getLines().toVector - finally sourceForTestResults.close() - val approvedOutput = - try sourceForApprovedFile.getLines().toVector - finally sourceForTestResults.close() - - resultingOutput should equal(approvedOutput) + Approvals.verifyAll("Items", items); } -} + @Test + def thirtyDays(): Unit = { + + val fakeoutput: ByteArrayOutputStream = new ByteArrayOutputStream(); + System.setOut(new PrintStream(fakeoutput)); + System.setIn(new ByteArrayInputStream("a\n".getBytes())); + + val args: Array[String] = Array("30") + TexttestFixture.main(args); + val output: String = fakeoutput.toString(); + + Approvals.verify(output); + } +} \ No newline at end of file diff --git a/scala/src/test/scala/com/gildedrose/TexttestFixture.scala b/scala/src/test/scala/com/gildedrose/TexttestFixture.scala index e8da3d53..ad54a41e 100644 --- a/scala/src/test/scala/com/gildedrose/TexttestFixture.scala +++ b/scala/src/test/scala/com/gildedrose/TexttestFixture.scala @@ -3,7 +3,7 @@ package com.gildedrose object TexttestFixture { def main(args: Array[String]): Unit = { - println("OMGHAI!") + System.out.println("OMGHAI!") val items = Array[Item]( Item("+5 Dexterity Vest", 10, 20), @@ -23,12 +23,12 @@ object TexttestFixture { if (args.nonEmpty) days = args(0).toInt + 1 for (i <- 0 until days) { - println("-------- day " + i + " --------") - println("name, sellIn, quality") + System.out.println("-------- day " + i + " --------") + System.out.println("name, sellIn, quality") for (item <- items) { - println(s"${item.name}, ${item.sellIn}, ${item.quality}") + System.out.println(s"${item.name}, ${item.sellIn}, ${item.quality}") } - println() + System.out.println() app.updateQuality() } }