Build in feature for conjured items

This commit is contained in:
Bart Van der Plancken 2020-02-06 22:19:53 +01:00
parent c88bfb0b69
commit a654464b75
2 changed files with 35 additions and 14 deletions

View File

@ -7,6 +7,7 @@ class GildedRose {
public static final String AGED_BRIE = "Aged Brie";
public static final String SULFURAS_HAND_OF_RAGNAROS = "Sulfuras, Hand of Ragnaros";
public static final String BACKSTAGE_PASSES = "Backstage passes to a TAFKAL80ETC concert";
public static final String CONJURED_MANA_CAKE = "Conjured Mana Cake";
Item[] items;
@ -25,10 +26,7 @@ class GildedRose {
int qualityOffset = determineEnhancingQualityOffset(item);
item.quality = Integer.min(item.quality + qualityOffset, MAX_QUALITY);
} else {
int qualityOffset = 1;
if(item.sellIn <= 0) {
qualityOffset +=1;
}
int qualityOffset = determineDegradingQualityOffset(item);
item.quality = Integer.max(MIN_QUALITY, item.quality - qualityOffset);
}
@ -53,6 +51,14 @@ class GildedRose {
return name.equals(GildedRose.AGED_BRIE) || name.equals(BACKSTAGE_PASSES);
}
/**
* @param name
* @return
*/
private boolean isConjuredItem(String name) {
return name.equals(CONJURED_MANA_CAKE);
}
/**
* @param item
* @return
@ -68,7 +74,22 @@ class GildedRose {
qualityOffset += 1;
}
} else if (isExpiredSale(item.sellIn)) {
qualityOffset += 1;
qualityOffset *= 2;
}
return qualityOffset;
}
/**
* @param item
* @return
*/
private int determineDegradingQualityOffset(Item item) {
int qualityOffset = 1;
if(item.sellIn <= 0) {
qualityOffset *=2;
}
if(isConjuredItem(item.name)) {
qualityOffset *= 2;
}
return qualityOffset;
}

View File

@ -130,15 +130,15 @@ class GildedRoseTest {
// day one
gildedRose.updateQuality();
assertEquals(2, conjuredItem.sellIn);
// assertEquals(4, conjuredItem.quality); //TODO this is the feature to get working
// // day two
// gildedRose.updateQuality();
// assertEquals(1, conjuredItem.sellIn);
// assertEquals(2, conjuredItem.quality); //TODO this is the feature to get working
// // day three
// gildedRose.updateQuality();
// assertEquals(0, conjuredItem.sellIn);
// assertEquals(2, conjuredItem.quality); //TODO this is the feature to get working
assertEquals(4, conjuredItem.quality); //TODO this is the feature to get working
// day two
gildedRose.updateQuality();
assertEquals(1, conjuredItem.sellIn);
assertEquals(2, conjuredItem.quality); //TODO this is the feature to get working
// day three
gildedRose.updateQuality();
assertEquals(0, conjuredItem.sellIn);
assertEquals(0, conjuredItem.quality); //TODO this is the feature to get working
}