diff --git a/Java/src/test/java/com/gildedrose/GildedRoseTest.java b/Java/src/test/java/com/gildedrose/GildedRoseTest.java index 90939835..53a7c9ec 100644 --- a/Java/src/test/java/com/gildedrose/GildedRoseTest.java +++ b/Java/src/test/java/com/gildedrose/GildedRoseTest.java @@ -13,4 +13,103 @@ class GildedRoseTest { app.updateQuality(); assertEquals("foo", app.items[0].name); } + + @Test + void standardItems(){ + Item[] items = new Item[]{ + new Item("item1", 100, 100), + new Item("item2", 50, 50) + }; + GildedRose app = new GildedRose(items); + app.updateQuality(); + assertEquals(app.items[0].quality, 99); + assertEquals(app.items[1].quality, 49); + assertEquals(app.items[0].sellIn, 99); + assertEquals(app.items[1].sellIn, 49); + } + + @Test + void qualityDegradationForExpired(){ + Item[] items = new Item[]{new Item("item1", 0, 100)}; + GildedRose app = new GildedRose(items); + app.updateQuality(); + assertEquals(app.items[0].quality, 98); + } + + @Test + void neverNegative(){ + Item[] items = new Item[]{ + new Item("item1", 0, 0), + new Item("item2", 10, 0), + new Item("item2", 0, 1), + }; + GildedRose app = new GildedRose(items); + app.updateQuality(); + assertEquals(app.items[0].quality, 0); + assertEquals(app.items[1].quality, 0); + assertEquals(app.items[2].quality, 0); + } + + @Test + void agedBrieIncreasedValue(){ + Item[] items = new Item[]{ + new Item("Aged Brie", 9, 0), + new Item("Aged Brie", 0, 0) + }; + GildedRose app = new GildedRose(items); + app.updateQuality(); + assertEquals(app.items[0].quality, 1); + assertEquals(app.items[1].quality, 2); + } + + @Test + void neverAbove50(){ + Item[] items = new Item[]{ + new Item("Aged Brie", 9, 50), + new Item("Aged Brie", 0, 50), + new Item("Aged Brie", 0, 49) + }; + GildedRose app = new GildedRose(items); + app.updateQuality(); + assertEquals(app.items[0].quality, 50); + assertEquals(app.items[1].quality, 50); + assertEquals(app.items[2].quality, 50); + } + + @Test + void sulfurasNeverDecreases(){ + //TODO: Sulfuras should be protected against instantiation with quality != 80 + Item[] items = new Item[]{ + new Item("Sulfuras, Hand of Ragnaros", 100, 80) + }; + GildedRose app = new GildedRose(items); + app.updateQuality(); + assertEquals(app.items[0].quality, 80); + assertEquals(app.items[0].sellIn, 100); + } + + @Test + void backStagePassesIncrease() { + String backstage = "Backstage passes to a TAFKAL80ETC concert"; + Item[] items = new Item[]{ + new Item(backstage, 100, 0), + new Item(backstage, 11, 0), + new Item(backstage, 10, 0), + new Item(backstage, 6, 0), + new Item(backstage, 5, 0), + new Item(backstage, 1, 0), + new Item(backstage, 0, 50), + new Item(backstage, -1, 50), + }; + GildedRose app = new GildedRose(items); + app.updateQuality(); + assertEquals(app.items[0].quality, 1); + assertEquals(app.items[1].quality, 1); + assertEquals(app.items[2].quality, 2); + assertEquals(app.items[3].quality, 2); + assertEquals(app.items[4].quality, 3); + assertEquals(app.items[5].quality, 3); + assertEquals(app.items[6].quality, 0); + assertEquals(app.items[7].quality, 0); + } }