mirror of
https://github.com/emilybache/GildedRose-Refactoring-Kata.git
synced 2026-02-16 06:51:27 +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){
|
private void changeQuality(Item item, int factor) {
|
||||||
return Math.max(oldQuality - factor, 0);
|
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) {
|
private void changeQualityOfStandardItems(Item item) {
|
||||||
int decreaseFactor = (item.sellIn > 0) ? 1 : 2;
|
final int decreaseFactor = (item.sellIn > 0) ? -1 : -2;
|
||||||
item.quality = getDecreasedQuality(item.quality, decreaseFactor);
|
changeQuality(item, decreaseFactor);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void changeQualityOfBries(Item item) {
|
private void changeQualityOfBries(Item item) {
|
||||||
int increaseFactor = (item.sellIn > 0) ? 1 : 2;
|
final int increaseFactor = (item.sellIn > 0) ? 1 : 2;
|
||||||
item.quality = getIncreasedQuality(item, increaseFactor);
|
changeQuality(item, increaseFactor);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void changeQualityOfPasses(Item item) {
|
private void changeQualityOfPasses(Item item) {
|
||||||
if (item.sellIn < 0) {
|
if (item.sellIn < 0) {
|
||||||
item.quality = 0;
|
item.quality = 0;
|
||||||
} else if (item.sellIn < 5) {
|
} else if (item.sellIn < 5) {
|
||||||
item.quality = getIncreasedQuality(item, 3);
|
changeQuality(item, 3);
|
||||||
} else if (item.sellIn < 10) {
|
} else if (item.sellIn < 10) {
|
||||||
item.quality = getIncreasedQuality(item, 2);
|
changeQuality(item, 2);
|
||||||
} else
|
} else
|
||||||
item.quality = getIncreasedQuality(item, 1);
|
changeQuality(item, 1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -17,23 +17,20 @@ class GildedRoseTest {
|
|||||||
@Test
|
@Test
|
||||||
void standardItems(){
|
void standardItems(){
|
||||||
Item[] items = new Item[]{
|
Item[] items = new Item[]{
|
||||||
new Item("item1", 100, 100),
|
new Item("item1", 40, 40)
|
||||||
new Item("item2", 50, 50)
|
|
||||||
};
|
};
|
||||||
GildedRose app = new GildedRose(items);
|
GildedRose app = new GildedRose(items);
|
||||||
app.updateQuality();
|
app.updateQuality();
|
||||||
assertEquals(app.items[0].quality, 99);
|
assertEquals(app.items[0].quality, 39);
|
||||||
assertEquals(app.items[1].quality, 49);
|
assertEquals(app.items[0].sellIn, 39);
|
||||||
assertEquals(app.items[0].sellIn, 99);
|
|
||||||
assertEquals(app.items[1].sellIn, 49);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void qualityDegradationForExpired(){
|
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);
|
GildedRose app = new GildedRose(items);
|
||||||
app.updateQuality();
|
app.updateQuality();
|
||||||
assertEquals(app.items[0].quality, 98);
|
assertEquals(app.items[0].quality, 38);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user