refactor: simplify using gildedrose

This commit is contained in:
Kadir Sirimsi 2025-02-11 14:37:58 +01:00
parent b7493ce188
commit 0458a9adb2
No known key found for this signature in database
GPG Key ID: A21C0144C2D2A134
2 changed files with 22 additions and 15 deletions

View File

@ -1,15 +1,15 @@
package com.gildedrose; package com.gildedrose;
import java.util.List;
class GildedRose { class GildedRose {
Item[] items; private final List<Item> items;
public GildedRose(Item[] items) { public GildedRose(Item[] items) {
this.items = items; this.items = List.of(items);
} }
public void updateQuality() { public void degradeItems() {
for (Item item : items) { items.forEach(Item::degrade);
item.updateItem();
}
} }
} }

View File

@ -7,16 +7,23 @@ import static org.junit.jupiter.api.Assertions.assertEquals;
class GildedRoseTest { class GildedRoseTest {
@Test @Test
void givenListOfItems_whenUpdateQuality_thenNameRemainsUnchanged() { void givenMultipleItems_whenDegradeItems_thenAllItemsDegradeCorrectly() {
final var name = "foo"; Item[] items = {
new NormalItem("Normal Item", 10, 20),
var items = new Item[] { new Item(name, 0, 0) }; 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); var app = new GildedRose(items);
app.degradeItems();
app.updateQuality(); assertEquals(9, items[0].sellIn);
assertEquals(19, items[0].quality);
assertEquals(name, app.items[0].getName()); 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);
} }
} }