diff --git a/Java/src/main/java/com/gildedrose/GildedRose.java b/Java/src/main/java/com/gildedrose/GildedRose.java index e6feb751..b7380441 100644 --- a/Java/src/main/java/com/gildedrose/GildedRose.java +++ b/Java/src/main/java/com/gildedrose/GildedRose.java @@ -8,55 +8,59 @@ 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")) { - if (items[i].quality > 0) { - if (!items[i].name.equals("Sulfuras, Hand of Ragnaros")) { - items[i].quality = items[i].quality - 1; + for (Item item : items) { + if (!item.name.equals("Aged Brie") + && !item.name.equals("Backstage passes to a TAFKAL80ETC concert")) { + if (item.quality > 0) { + if (!item.name.equals("Sulfuras, Hand of Ragnaros")) { + item.quality = item.quality - 1; } } } else { - if (items[i].quality < 50) { - items[i].quality = items[i].quality + 1; + if (item.quality < 50) { + item.quality = item.quality + 1; - if (items[i].name.equals("Backstage passes to a TAFKAL80ETC concert")) { - if (items[i].sellIn < 11) { - if (items[i].quality < 50) { - items[i].quality = items[i].quality + 1; + if (item.name.equals("Backstage passes to a TAFKAL80ETC concert")) { + if (item.sellIn < 11) { + if (item.quality < 50) { + item.quality = item.quality + 1; } } - if (items[i].sellIn < 6) { - if (items[i].quality < 50) { - items[i].quality = items[i].quality + 1; + if (item.sellIn < 6) { + if (item.quality < 50) { + item.quality = item.quality + 1; } } } } } - if (!items[i].name.equals("Sulfuras, Hand of Ragnaros")) { - items[i].sellIn = items[i].sellIn - 1; + if (!item.name.equals("Sulfuras, Hand of Ragnaros")) { + updateSellInDays(item); } - if (items[i].sellIn < 0) { - if (!items[i].name.equals("Aged Brie")) { - 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 (item.sellIn < 0) { + if (!item.name.equals("Aged Brie")) { + if (!item.name.equals("Backstage passes to a TAFKAL80ETC concert")) { + if (item.quality > 0) { + if (!item.name.equals("Sulfuras, Hand of Ragnaros")) { + item.quality = item.quality - 1; } } } else { - items[i].quality = items[i].quality - items[i].quality; + item.quality = item.quality - item.quality; } } else { - if (items[i].quality < 50) { - items[i].quality = items[i].quality + 1; + if (item.quality < 50) { + item.quality = item.quality + 1; } } } } } + + private void updateSellInDays(Item item) { + item.sellIn--; + } } \ 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..1859d7ec 100644 --- a/Java/src/test/java/com/gildedrose/GildedRoseTest.java +++ b/Java/src/test/java/com/gildedrose/GildedRoseTest.java @@ -6,12 +6,20 @@ import static org.junit.jupiter.api.Assertions.assertEquals; class GildedRoseTest { - @Test - void foo() { - Item[] items = new Item[] { new Item("foo", 0, 0) }; - GildedRose app = new GildedRose(items); - app.updateQuality(); - assertEquals("fixme", app.items[0].name); - } + @Test + void testUpdateSellInDaysForAgedBrie() { + Item[] items = new Item[] { new Item("Aged Brie", 1, 1) }; + GildedRose app = new GildedRose(items); + app.updateQuality(); + assertEquals(0, items[0].sellIn); + } + + @Test + void testUpdateSellInDaysForSulfuras() { + Item[] items = new Item[] { new Item("Sulfuras, Hand of Ragnaros", 1, 1) }; + GildedRose app = new GildedRose(items); + app.updateQuality(); + assertEquals(1, items[0].sellIn); + } }