diff --git a/Java/src/main/java/com/gildedrose/GildedRose.java b/Java/src/main/java/com/gildedrose/GildedRose.java index e6feb751..e7bb95ad 100644 --- a/Java/src/main/java/com/gildedrose/GildedRose.java +++ b/Java/src/main/java/com/gildedrose/GildedRose.java @@ -10,10 +10,18 @@ class GildedRose { public void updateQuality() { for (int i = 0; i < items.length; i++) { if (!items[i].name.equals("Aged Brie") - && !items[i].name.equals("Backstage passes to a TAFKAL80ETC concert")) { + && !items[i].name.equals("Backstage passes to a TAFKAL80ETC concert")) { if (items[i].quality > 0) { if (!items[i].name.equals("Sulfuras, Hand of Ragnaros")) { - items[i].quality = items[i].quality - 1; + if (items[i].name.startsWith("Conjured")) { + if (items[i].quality == 1) { + items[i].quality = 0; + } else { + items[i].quality = items[i].quality - 2; + } + } else { + items[i].quality = items[i].quality - 1; + } } } } else { @@ -45,7 +53,15 @@ class GildedRose { if (!items[i].name.equals("Backstage passes to a TAFKAL80ETC concert")) { if (items[i].quality > 0) { if (!items[i].name.equals("Sulfuras, Hand of Ragnaros")) { - items[i].quality = items[i].quality - 1; + if (items[i].name.startsWith("Conjured")) { + if (items[i].quality == 1) { + items[i].quality = 0; + } else { + items[i].quality = items[i].quality - 2; + } + } else { + items[i].quality = items[i].quality - 1; + } } } } else { @@ -59,4 +75,4 @@ class GildedRose { } } } -} \ No newline at end of file +} diff --git a/Java/src/test/java/com/gildedrose/GildedRoseTest.java b/Java/src/test/java/com/gildedrose/GildedRoseTest.java index 8ae29eec..c2f18f0d 100644 --- a/Java/src/test/java/com/gildedrose/GildedRoseTest.java +++ b/Java/src/test/java/com/gildedrose/GildedRoseTest.java @@ -8,10 +8,25 @@ class GildedRoseTest { @Test void foo() { - Item[] items = new Item[] { new Item("foo", 0, 0) }; + Item[] items = new Item[]{new Item("foo", 0, 0)}; GildedRose app = new GildedRose(items); app.updateQuality(); assertEquals("fixme", app.items[0].name); } + // public Item(String name, int sellIn, int quality) { + @Test + void conjuredItemQualityDecreaseTwice() { + Item[] items = new Item[]{new Item("Conjured Cake", 0, 2), new Item("Aged Brie", 1, 30)}; + GildedRose glidedRose = new GildedRose(items); + glidedRose.updateQuality(); + assertEquals(0, glidedRose.items[0].quality); + } + @Test + void conjuredItemQualityShouldotBeNegative() { + Item[] items = new Item[]{new Item("Conjured Cake", 0, 1), new Item("Aged Brie", 1, 30)}; + GildedRose glidedRose = new GildedRose(items); + glidedRose.updateQuality(); + assertEquals(0, glidedRose.items[0].quality); + } }