Extract the legendary (Sulfuras) Gilded Rose item behaviour

This commit is contained in:
rverlind 2023-12-05 22:26:27 +01:00
parent ce308107f2
commit fdd930f5cd
3 changed files with 25 additions and 4 deletions

View File

@ -13,10 +13,11 @@ public class GildedRoseItemFactory {
static final Pattern CONJURED_ITEM = Pattern.compile("Conjured.*", CASE_INSENSITIVE);
public static GildedRoseItem create(Item item) {
if (LEGENDARY_NAME_PATTERN.matcher(item.name).matches()
|| AGING_ITEM.matcher(item.name).matches()
if (AGING_ITEM.matcher(item.name).matches()
|| CONJURED_ITEM.matcher(item.name).matches()) {
return new NonStandardGildedRoseItem(item);
} else if (LEGENDARY_NAME_PATTERN.matcher(item.name).matches()) {
return new LegendaryGildedRoseItem(item);
} else {
return new StandardGildedRoseItem(item);
}

View File

@ -0,0 +1,16 @@
package com.gildedrose.items;
import com.gildedrose.Item;
public class LegendaryGildedRoseItem extends AbstractGildedRoseItem {
public LegendaryGildedRoseItem(Item item) {
super(item);
}
@Override
public GildedRoseItem updateQuality() {
return this;
}
}

View File

@ -42,14 +42,18 @@ class GildedRoseTest {
@Test
void updateQuality_standardItem_maxQuality50() {
GildedRose app = createApp(createItem("standard", 10, 60));
app.updateQuality();
assertEquals(49, app.items[0].quality);
}
@Test
void updateQuality_legendaryItem() {
fail("NYI");
GildedRose app = createApp(createItem("Sulfuras, Hand of Ragnaros ", 10, 80));
app.updateQuality();
assertEquals(10, app.items[0].sellIn);
assertEquals(80, app.items[0].quality);
}
@Test