diff --git a/Java/src/main/java/com/gildedrose/GildedRose.java b/Java/src/main/java/com/gildedrose/GildedRose.java index 6ed8cd11..9ea9be42 100644 --- a/Java/src/main/java/com/gildedrose/GildedRose.java +++ b/Java/src/main/java/com/gildedrose/GildedRose.java @@ -1,15 +1,15 @@ package com.gildedrose; +import java.util.List; + class GildedRose { - Item[] items; + private final List items; public GildedRose(Item[] items) { - this.items = items; + this.items = List.of(items); } - public void updateQuality() { - for (Item item : items) { - item.updateItem(); - } + public void degradeItems() { + items.forEach(Item::degrade); } } diff --git a/Java/src/test/java/com/gildedrose/GildedRoseTest.java b/Java/src/test/java/com/gildedrose/GildedRoseTest.java index a91c55a7..004de6e1 100644 --- a/Java/src/test/java/com/gildedrose/GildedRoseTest.java +++ b/Java/src/test/java/com/gildedrose/GildedRoseTest.java @@ -7,16 +7,23 @@ import static org.junit.jupiter.api.Assertions.assertEquals; class GildedRoseTest { @Test - void givenListOfItems_whenUpdateQuality_thenNameRemainsUnchanged() { - final var name = "foo"; - - var items = new Item[] { new Item(name, 0, 0) }; + void givenMultipleItems_whenDegradeItems_thenAllItemsDegradeCorrectly() { + Item[] items = { + new NormalItem("Normal Item", 10, 20), + new AgedBrieItem("Aged Brie", 5, 10), + new BackstagePassItem("Backstage Pass", 15, 30), + new SulfurasItem("Sulfuras, Hand of Ragnaros", 0, 80) + }; var app = new GildedRose(items); + app.degradeItems(); - app.updateQuality(); - - assertEquals(name, app.items[0].getName()); + assertEquals(9, items[0].sellIn); + assertEquals(19, items[0].quality); + assertEquals(4, items[1].sellIn); + assertEquals(11, items[1].quality); + assertEquals(14, items[2].sellIn); + assertEquals(31, items[2].quality); + assertEquals(0, items[3].sellIn); + assertEquals(80, items[3].quality); } - - }