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