approval tests for java analog to csharp variant

This commit is contained in:
Peter Fichtner (pfichtner) 2021-11-29 22:16:30 +01:00
parent 263a07d58d
commit 3f23301beb
3 changed files with 65 additions and 0 deletions

View File

@ -24,6 +24,11 @@
<version>${junit.jupiter.version}</version> <version>${junit.jupiter.version}</version>
<scope>test</scope> <scope>test</scope>
</dependency> </dependency>
<dependency>
<groupId>com.approvaltests</groupId>
<artifactId>approvaltests</artifactId>
<version>12.1.1</version>
</dependency>
</dependencies> </dependencies>
<build> <build>

View File

@ -0,0 +1,32 @@
package com.gildedrose;
public class Program {
public static void main(String... args) {
System.out.println("OMGHAI!");
Item[] items = new Item[] {
new Item("+5 Dexterity Vest", 10, 20),
new Item("Aged Brie", 2, 0),
new Item("Elixir of the Mongoose", 5, 7),
new Item("Sulfuras, Hand of Ragnaros", 0, 80),
new Item("Sulfuras, Hand of Ragnaros", -1, 80),
new Item("Backstage passes to a TAFKAL80ETC concert", 15, 20),
new Item("Backstage passes to a TAFKAL80ETC concert", 10, 49),
new Item("Backstage passes to a TAFKAL80ETC concert", 5, 49),
// this conjured item does not work properly yet
new Item("Conjured Mana Cake", 3, 6) };
GildedRose app = new GildedRose(items);
for (int i = 0; i < 31; i++) {
System.out.println("-------- day " + i + " --------");
System.out.println("name, sellIn, quality");
for (int j = 0; j < items.length; j++) {
System.out.println(items[j]);
}
System.out.println("");
app.updateQuality();
}
}
}

View File

@ -0,0 +1,28 @@
package com.gildedrose;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.PrintStream;
import org.approvaltests.Approvals;
import org.approvaltests.reporters.DiffReporter;
import org.approvaltests.reporters.UseReporter;
import org.junit.jupiter.api.Test;
@UseReporter(DiffReporter.class)
public class ApprovalTest {
@Test
public void thirtyDays() {
ByteArrayOutputStream fakeoutput = new ByteArrayOutputStream();
System.setOut(new PrintStream(fakeoutput));
System.setIn(new ByteArrayInputStream("a\n".getBytes()));
Program.main();
String output = fakeoutput.toString();
Approvals.verify(output);
}
}