mirror of
https://github.com/emilybache/GildedRose-Refactoring-Kata.git
synced 2026-02-15 06:21:29 +00:00
Generalize Sulfuras condition
This commit is contained in:
parent
36b6e62963
commit
5459470d10
@ -7,14 +7,13 @@ class GildedRose {
|
||||
Item[] items;
|
||||
|
||||
public static String backStagePasses = "Backstage passes to a TAFKAL80ETC concert";
|
||||
public static String sulfuras = "Sulfuras, Hand of Ragnaros";
|
||||
public static String agedBrie = "Aged Brie";
|
||||
public GildedRose(Item[] items) {
|
||||
this.items = items;
|
||||
}
|
||||
|
||||
public void updateQuality() {
|
||||
Item[] agingItems = Arrays.stream(items).filter(i -> !i.name.equals(sulfuras)).toArray(Item[]::new);
|
||||
Item[] agingItems = Arrays.stream(items).filter(i -> !i.name.toLowerCase().contains("sulfuras")).toArray(Item[]::new);
|
||||
Stream<Item> bries = Arrays.stream(agingItems).filter(i -> i.name.equals(agedBrie));
|
||||
Stream<Item> backstagePasses = Arrays.stream(agingItems).filter(i -> i.name.equals(backStagePasses));
|
||||
Stream<Item> standardItems = Arrays.stream(agingItems).filter(i -> !i.name.equals(backStagePasses) && !i.name.equals(agedBrie));
|
||||
@ -30,12 +29,10 @@ class GildedRose {
|
||||
item.quality = Math.min(Math.max(item.quality + factor, 0), 50);
|
||||
}
|
||||
private void changeQualityOfStandardItems(Item item) {
|
||||
final int decreaseFactor = (item.sellIn > 0) ? -1 : -2;
|
||||
changeQuality(item, decreaseFactor);
|
||||
changeQuality(item, (item.sellIn > 0) ? -1 : -2);
|
||||
}
|
||||
private void changeQualityOfBries(Item item) {
|
||||
final int increaseFactor = (item.sellIn > 0) ? 1 : 2;
|
||||
changeQuality(item, increaseFactor);
|
||||
changeQuality(item, (item.sellIn > 0) ? 1 : 2);
|
||||
}
|
||||
private void changeQualityOfPasses(Item item) {
|
||||
if (item.sellIn < 0) {
|
||||
|
||||
@ -77,12 +77,15 @@ class GildedRoseTest {
|
||||
void sulfurasNeverDecreases(){
|
||||
//TODO: Sulfuras should be protected against instantiation with quality != 80
|
||||
Item[] items = new Item[]{
|
||||
new Item(GildedRose.sulfuras, 100, 80)
|
||||
new Item("Sulfuras, Hand of Ragnaros", 100, 80),
|
||||
new Item("SULFURAS, pants of Ragnar Lothbrok", 200, 80)
|
||||
};
|
||||
GildedRose app = new GildedRose(items);
|
||||
app.updateQuality();
|
||||
assertEquals(app.items[0].quality, 80);
|
||||
assertEquals(app.items[0].sellIn, 100);
|
||||
assertEquals(app.items[1].quality, 80);
|
||||
assertEquals(app.items[1].sellIn, 200);
|
||||
}
|
||||
|
||||
@Test
|
||||
|
||||
Loading…
Reference in New Issue
Block a user