mirror of
https://github.com/emilybache/GildedRose-Refactoring-Kata.git
synced 2026-02-15 14:31:28 +00:00
Refactor to unique changeQuality
This commit is contained in:
parent
bf4fe8a02f
commit
eb0e2bad02
@ -32,32 +32,25 @@ class GildedRose {
|
||||
}
|
||||
}
|
||||
|
||||
private int getDecreasedQuality(int oldQuality, int factor){
|
||||
return Math.max(oldQuality - factor, 0);
|
||||
private void changeQuality(Item item, int factor) {
|
||||
item.quality = Math.min(Math.max(item.quality + factor, 0), 50);
|
||||
}
|
||||
|
||||
private int getIncreasedQuality(Item item, int factor) {
|
||||
return Math.min(item.quality + factor, 50);
|
||||
}
|
||||
|
||||
private void changeQualityOfStandardItems(Item item) {
|
||||
int decreaseFactor = (item.sellIn > 0) ? 1 : 2;
|
||||
item.quality = getDecreasedQuality(item.quality, decreaseFactor);
|
||||
final int decreaseFactor = (item.sellIn > 0) ? -1 : -2;
|
||||
changeQuality(item, decreaseFactor);
|
||||
}
|
||||
|
||||
private void changeQualityOfBries(Item item) {
|
||||
int increaseFactor = (item.sellIn > 0) ? 1 : 2;
|
||||
item.quality = getIncreasedQuality(item, increaseFactor);
|
||||
final int increaseFactor = (item.sellIn > 0) ? 1 : 2;
|
||||
changeQuality(item, increaseFactor);
|
||||
}
|
||||
|
||||
private void changeQualityOfPasses(Item item) {
|
||||
if (item.sellIn < 0) {
|
||||
item.quality = 0;
|
||||
} else if (item.sellIn < 5) {
|
||||
item.quality = getIncreasedQuality(item, 3);
|
||||
changeQuality(item, 3);
|
||||
} else if (item.sellIn < 10) {
|
||||
item.quality = getIncreasedQuality(item, 2);
|
||||
changeQuality(item, 2);
|
||||
} else
|
||||
item.quality = getIncreasedQuality(item, 1);
|
||||
changeQuality(item, 1);
|
||||
}
|
||||
}
|
||||
|
||||
@ -17,23 +17,20 @@ class GildedRoseTest {
|
||||
@Test
|
||||
void standardItems(){
|
||||
Item[] items = new Item[]{
|
||||
new Item("item1", 100, 100),
|
||||
new Item("item2", 50, 50)
|
||||
new Item("item1", 40, 40)
|
||||
};
|
||||
GildedRose app = new GildedRose(items);
|
||||
app.updateQuality();
|
||||
assertEquals(app.items[0].quality, 99);
|
||||
assertEquals(app.items[1].quality, 49);
|
||||
assertEquals(app.items[0].sellIn, 99);
|
||||
assertEquals(app.items[1].sellIn, 49);
|
||||
assertEquals(app.items[0].quality, 39);
|
||||
assertEquals(app.items[0].sellIn, 39);
|
||||
}
|
||||
|
||||
@Test
|
||||
void qualityDegradationForExpired(){
|
||||
Item[] items = new Item[]{new Item("item1", 0, 100)};
|
||||
Item[] items = new Item[]{new Item("item1", 0, 40)};
|
||||
GildedRose app = new GildedRose(items);
|
||||
app.updateQuality();
|
||||
assertEquals(app.items[0].quality, 98);
|
||||
assertEquals(app.items[0].quality, 38);
|
||||
}
|
||||
|
||||
@Test
|
||||
|
||||
Loading…
Reference in New Issue
Block a user