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