diff --git a/Java/src/test/java/com/gildedrose/GildedRoseTest.java b/Java/src/test/java/com/gildedrose/GildedRoseTest.java index 804f9c70..09ac78e8 100644 --- a/Java/src/test/java/com/gildedrose/GildedRoseTest.java +++ b/Java/src/test/java/com/gildedrose/GildedRoseTest.java @@ -16,6 +16,7 @@ class GildedRoseTest { assertEquals(item.quality, 50); } + @Test void should_decrease_multiple_items_quality_each_day() { Item firstItem = new Item("First Standard Item", 5, 4); @@ -113,4 +114,136 @@ class GildedRoseTest { assertEquals(item.quality, 0); } + + + @Test + void aged_item_quality_increases_twice_as_fast_past_sellin_date() { + Item item = new Item("Aged Brie", 0, 6); + GildedRose gildedRose = new GildedRose(new Item[] { item }); + + gildedRose.updateQuality(); + + assertEquals(item.quality, 8); + } + + @Test + void aged_item_quality_50_past_sellin_date_does_not_increase() { + Item item = new Item("Aged Brie", 0, 50); + GildedRose gildedRose = new GildedRose(new Item[] { item }); + + gildedRose.updateQuality(); + + assertEquals(item.quality, 50); + } + + @Test + void legendary_items_never_have_to_be_sold() { + Item item = new Item("Sulfuras, Hand of Ragnaros", -1, 80); + GildedRose gildedRose = new GildedRose(new Item[] { item }); + + gildedRose.updateQuality(); + + assertEquals(item.sellIn, -1); + } + + @Test + void legendary_items_never_decrease_in_quality() { + Item item = new Item("Sulfuras, Hand of Ragnaros", -1, 80); + GildedRose gildedRose = new GildedRose(new Item[] { item }); + + gildedRose.updateQuality(); + + assertEquals(item.quality, 80); + } + + + @Test + void backstage_passes_increase_in_quality_as_sellIn_date_approaches() { + Item item = new Item("Backstage passes to a TAFKAL80ETC concert", 15, 20); + GildedRose gildedRose = new GildedRose(new Item[] { item }); + + gildedRose.updateQuality(); + + assertEquals(item.quality, 21); + } + + @Test + void backstage_passes_increase_in_quality_by_1_when_there_are_10_days_or_less() { + Item item = new Item("Backstage passes to a TAFKAL80ETC concert", 11, 48); + GildedRose gildedRose = new GildedRose(new Item[] { item }); + + gildedRose.updateQuality(); + + assertEquals(item.quality, 49); + } + + @Test + void backstage_passes_increase_in_quality_by_2_when_there_are_10_days_or_less() { + Item item = new Item("Backstage passes to a TAFKAL80ETC concert", 10, 20); + GildedRose gildedRose = new GildedRose(new Item[] { item }); + + gildedRose.updateQuality(); + + assertEquals(item.quality, 22); + } + + @Test + void backstage_passes_quality_49_increase_up_to_50_when_there_are_10_days_or_less() { + Item item = new Item("Backstage passes to a TAFKAL80ETC concert", 10, 49); + GildedRose gildedRose = new GildedRose(new Item[] { item }); + + gildedRose.updateQuality(); + + assertEquals(item.quality,50); + } + + @Test + void backstage_passes_increase_in_quality_by_2_when_there_are_6_days_or_less() { + Item item = new Item("Backstage passes to a TAFKAL80ETC concert", 6, 46); + GildedRose gildedRose = new GildedRose(new Item[] { item }); + + gildedRose.updateQuality(); + + assertEquals(item.quality, 48); + } + + @Test + void backstage_passes_increase_in_quality_by_3_when_there_are_5_days_or_less() { + Item item = new Item("Backstage passes to a TAFKAL80ETC concert", 5, 20); + GildedRose gildedRose = new GildedRose(new Item[] { item }); + + gildedRose.updateQuality(); + + assertEquals(item.quality, 23); + } + + @Test + void backstage_passes_quality_47_increase_up_to_50_when_there_are_5_days_or_less() { + Item item = new Item("Backstage passes to a TAFKAL80ETC concert", 5, 47); + GildedRose gildedRose = new GildedRose(new Item[] { item }); + + gildedRose.updateQuality(); + + assertEquals(item.quality, 50); + } + + @Test + void backstage_passes_quality_49_increase_up_to_50_when_there_are_5_days_or_less() { + Item item = new Item("Backstage passes to a TAFKAL80ETC concert", 5, 49); + GildedRose gildedRose = new GildedRose(new Item[] { item }); + + gildedRose.updateQuality(); + + assertEquals(item.quality, 50); + } + + @Test + void backstage_passes_quality_is_0_after_concert() { + Item item = new Item("Backstage passes to a TAFKAL80ETC concert", 0, 20); + GildedRose gildedRose = new GildedRose(new Item[] { item }); + + gildedRose.updateQuality(); + + assertEquals(item.quality, 0); + } }