diff --git a/Java/pom.xml b/Java/pom.xml index 7310a410..395a4dc9 100644 --- a/Java/pom.xml +++ b/Java/pom.xml @@ -24,6 +24,11 @@ ${junit.jupiter.version} test + + com.approvaltests + approvaltests + 12.1.1 + diff --git a/Java/src/main/java/com/gildedrose/Program.java b/Java/src/main/java/com/gildedrose/Program.java new file mode 100644 index 00000000..0d437106 --- /dev/null +++ b/Java/src/main/java/com/gildedrose/Program.java @@ -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(); + } + } +} diff --git a/Java/src/test/java/com/gildedrose/ApprovalTest.java b/Java/src/test/java/com/gildedrose/ApprovalTest.java new file mode 100644 index 00000000..022067aa --- /dev/null +++ b/Java/src/test/java/com/gildedrose/ApprovalTest.java @@ -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); + } + +}