mirror of
https://github.com/emilybache/GildedRose-Refactoring-Kata.git
synced 2026-02-19 00:11:35 +00:00
refactor: simplify using gildedrose
This commit is contained in:
parent
b7493ce188
commit
0458a9adb2
@ -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();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user