diff --git a/Java/src/test/java/com/gildedrose/GildedRoseTest.java b/Java/src/test/java/com/gildedrose/GildedRoseTest.java index 8ae29eec..dcffcfac 100644 --- a/Java/src/test/java/com/gildedrose/GildedRoseTest.java +++ b/Java/src/test/java/com/gildedrose/GildedRoseTest.java @@ -13,5 +13,156 @@ class GildedRoseTest { app.updateQuality(); assertEquals("fixme", app.items[0].name); } + + // copy-paste from https://gist.github.com/adelatorrefoss/ebc658b3e0054913dced80c8fe384de0 + @Test + public void quality_never_is_negative() { + Item[] items = new Item[]{new Item("foo", 0, 0)}; + GildedRose app = new GildedRose(items); + + app.updateQuality(); + + assertEquals(0, app.items[0].quality); + } + + @Test + public void sulfuras_could_not_be_sold() { + Item[] items = new Item[]{new Item("Sulfuras, Hand of Ragnaros", 10, 0)}; + GildedRose app = new GildedRose(items); + + app.updateQuality(); + + assertEquals(10, app.items[0].sellIn); + } + + @Test + public void sulfuras_could_not_decrease_quality() { + Item[] items = new Item[]{new Item("Sulfuras, Hand of Ragnaros", 10, 10)}; + GildedRose app = new GildedRose(items); + + app.updateQuality(); + + assertEquals(10, app.items[0].quality); + } + + @Test + public void quality_could_not_be_more_than_fifty() { + Item[] items = new Item[]{new Item("Aged Brie", 10, 50)}; + GildedRose app = new GildedRose(items); + + app.updateQuality(); + + assertEquals(50, app.items[0].quality); + } + + @Test + public void item_with_date_passed_quality_decrease_by_twice() { + Item[] items = new Item[]{new Item("foo", -1, 40)}; + GildedRose app = new GildedRose(items); + + app.updateQuality(); + + assertEquals(38, app.items[0].quality); + } + + @Test + public void aged_brie_increase_quality_when_it_gets_older() { + Item[] items = new Item[]{new Item("Aged Brie", 1, 40)}; + GildedRose app = new GildedRose(items); + + app.updateQuality(); + + assertEquals(41, app.items[0].quality); + } + + @Test + public void aged_brie_increase_by_two_quality_when_date_passed() { + Item[] items = new Item[]{new Item("Aged Brie", -1, 40)}; + GildedRose app = new GildedRose(items); + + app.updateQuality(); + + assertEquals(42, app.items[0].quality); + } + + @Test + public void aged_brie_increase_by_two_quality_when_date_passed_and_not_more_than_fifty() { + Item[] items = new Item[]{new Item("Aged Brie", -1, 50)}; + GildedRose app = new GildedRose(items); + + app.updateQuality(); + + assertEquals(50, app.items[0].quality); + } + + @Test + public void backstage_passes_increase_quality_by_two_when_sellin_less_than_ten() { + Item[] items = new Item[]{new Item("Backstage passes to a TAFKAL80ETC concert", 10, 40)}; + GildedRose app = new GildedRose(items); + + app.updateQuality(); + + assertEquals(42, app.items[0].quality); + } + + @Test + public void backstage_passes_increase_quality_by_two_when_sellin_less_than_six() { + Item[] items = new Item[]{new Item("Backstage passes to a TAFKAL80ETC concert", 6, 40)}; + GildedRose app = new GildedRose(items); + + app.updateQuality(); + + assertEquals(42, app.items[0].quality); + } + + @Test + public void backstage_passes_increase_quality_by_three_when_sellin_less_than_five() { + Item[] items = new Item[]{new Item("Backstage passes to a TAFKAL80ETC concert", 5, 40)}; + GildedRose app = new GildedRose(items); + + app.updateQuality(); + + assertEquals(43, app.items[0].quality); + } + + @Test + public void backstage_passes_increase_quality_by_two_when_sellin_less_than_six_and_not_more_than_fifty() { + Item[] items = new Item[]{new Item("Backstage passes to a TAFKAL80ETC concert", 6, 49)}; + GildedRose app = new GildedRose(items); + + app.updateQuality(); + + assertEquals(50, app.items[0].quality); + } + + @Test + public void backstage_passes_increase_quality_by_three_when_sellin_less_than_five_and_not_more_than_fifty() { + Item[] items = new Item[]{new Item("Backstage passes to a TAFKAL80ETC concert", 5, 48)}; + GildedRose app = new GildedRose(items); + + app.updateQuality(); + + assertEquals(50, app.items[0].quality); + } + + @Test + public void backstage_passes_quality_drops_to_zero_after_concert() { + Item[] items = new Item[]{new Item("Backstage passes to a TAFKAL80ETC concert", 0, 40)}; + GildedRose app = new GildedRose(items); + + app.updateQuality(); + + assertEquals(0, app.items[0].quality); + } + + @Test + public void backstage_passes_quality_increase_quality_by_one_when_date_is_more_than_10() { + Item[] items = new Item[]{new Item("Backstage passes to a TAFKAL80ETC concert", 11, 40)}; + GildedRose app = new GildedRose(items); + + app.updateQuality(); + + assertEquals(41, app.items[0].quality); + } }