merged with origin

This commit is contained in:
Ralf Comtesse 2025-10-06 12:06:17 +02:00
parent 0a08d92b95
commit f3e62e2bbb
2 changed files with 29 additions and 24 deletions

View File

@ -1,32 +1,38 @@
package com.gildedrose package com.gildedrose
import org.scalatest.flatspec.AnyFlatSpec import org.approvaltests.Approvals
import org.scalatest.matchers.should.Matchers import org.approvaltests.reporters.DiffReporter
import org.approvaltests.reporters.UseReporter
import org.junit.jupiter.api.Test
import java.io.{File, FileOutputStream} import java.io.ByteArrayInputStream
import scala.io.Source import java.io.ByteArrayOutputStream
import java.io.PrintStream
class GildedRoseApprovalTest extends AnyFlatSpec with Matchers { @UseReporter(Array(classOf[DiffReporter]))
it should "return the result of the golden master" in { class GildedRoseApprovalTest {
val fileWithTestResult = new File("approvaltests/gildedrose.testresult.txt")
val outputStream = new FileOutputStream(fileWithTestResult)
Console.withOut(outputStream) {
TexttestFixture.main(Array("30")) @Test
def foo(): Unit = {
val items: Array[Item] = Array(Item("foo", 0, 0))
val app: GildedRose = new GildedRose(items)
app.updateQuality()
Approvals.verifyAll("Items", items)
} }
val approvedFile = "approvaltests/gildedrose.approved.txt" @Test
val sourceForTestResults = Source.fromFile(fileWithTestResult) def thirtyDays(): Unit = {
val sourceForApprovedFile = Source.fromFile(approvedFile)
val resultingOutput = val fakeoutput: ByteArrayOutputStream = new ByteArrayOutputStream()
try sourceForTestResults.getLines().toVector System.setOut(new PrintStream(fakeoutput))
finally sourceForTestResults.close() System.setIn(new ByteArrayInputStream("a\n".getBytes()))
val approvedOutput =
try sourceForApprovedFile.getLines().toVector
finally sourceForTestResults.close()
resultingOutput should equal(approvedOutput) val args: Array[String] = Array("30")
TexttestFixture.main(args)
val output: String = fakeoutput.toString()
Approvals.verify(output)
} }
} }

View File

@ -1,7 +1,6 @@
package com.gildedrose package com.gildedrose
object TexttestFixture { object TexttestFixture {
@main
def main(args: Array[String]): Unit = { def main(args: Array[String]): Unit = {
System.out.println("OMGHAI!") System.out.println("OMGHAI!")