diff --git a/Java/src/main/java/com/gildedrose/GildedRose.java b/Java/src/main/java/com/gildedrose/GildedRose.java index b26b463c..2dd1033f 100644 --- a/Java/src/main/java/com/gildedrose/GildedRose.java +++ b/Java/src/main/java/com/gildedrose/GildedRose.java @@ -30,12 +30,19 @@ class GildedRose { } else if (item.sellIn <= 10) { item.quality += 2; } + } else if (item.name.startsWith("Conjured")) { + // conjured is twice the degrade rate as regular items + if (item.sellIn <= 0) { + item.quality -= 4; + } else { + item.quality -= 2; + } } else { // just a regular item if (item.sellIn <= 0) { item.quality -= 2; } else { - item.quality --; + item.quality--; } } diff --git a/Java/src/test/java/com/gildedrose/GildedRoseTest.java b/Java/src/test/java/com/gildedrose/GildedRoseTest.java index d24c963a..a999c49a 100644 --- a/Java/src/test/java/com/gildedrose/GildedRoseTest.java +++ b/Java/src/test/java/com/gildedrose/GildedRoseTest.java @@ -100,4 +100,18 @@ class GildedRoseTest { assertEquals(0, app.items[0].quality); } + + @Test + void conjuredItemsDegrade2x() { + Item[] items = new Item[] { new Item("Conjured Brie", 1, 50) }; + GildedRose app = new GildedRose(items); + + // twice as fast as normal degrade = -2 + app.updateQuality(); + assertEquals(48, app.items[0].quality); + + // twice as fast as sellIn has passed = -4 + app.updateQuality(); + assertEquals(44, app.items[0].quality); + } }