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;
import java.util.List;
class GildedRose {
Item[] items;
private final List<Item> 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);
}
}

View File

@ -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);
}
}