mirror of
https://github.com/emilybache/GildedRose-Refactoring-Kata.git
synced 2026-02-18 16:01:42 +00:00
Refactor enhance item - use max function
This commit is contained in:
parent
0d4fc93666
commit
03ee348b4d
@ -2,6 +2,9 @@ package com.gildedrose;
|
|||||||
|
|
||||||
class GildedRose {
|
class GildedRose {
|
||||||
|
|
||||||
|
private static final int MIN_QUALITY = 0;
|
||||||
|
private static final int MAX_QUALITY = 50;
|
||||||
|
public static final String AGED_BRIE = "Aged Brie";
|
||||||
public static final String SULFURAS_HAND_OF_RAGNAROS = "Sulfuras, Hand of Ragnaros";
|
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 BACKSTAGE_PASSES = "Backstage passes to a TAFKAL80ETC concert";
|
||||||
|
|
||||||
@ -26,14 +29,14 @@ class GildedRose {
|
|||||||
updateSellInValue(item);
|
updateSellInValue(item);
|
||||||
|
|
||||||
if (item.sellIn < 0) {
|
if (item.sellIn < 0) {
|
||||||
if (!item.name.equals("Aged Brie")) {
|
if (!item.name.equals(AGED_BRIE)) {
|
||||||
if (!item.name.equals(BACKSTAGE_PASSES)) {
|
if (!item.name.equals(BACKSTAGE_PASSES)) {
|
||||||
degradeItem(item);
|
degradeItem(item);
|
||||||
} else {
|
} else {
|
||||||
item.quality = 0;
|
item.quality = MIN_QUALITY;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
item.quality = Integer.min(item.quality + 1,50);
|
item.quality = Integer.min(item.quality + 1, MAX_QUALITY);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -43,7 +46,7 @@ class GildedRose {
|
|||||||
* @param item
|
* @param item
|
||||||
*/
|
*/
|
||||||
private void degradeItem(Item item) {
|
private void degradeItem(Item item) {
|
||||||
item.quality = Integer.max(0, item.quality - 1);
|
item.quality = Integer.max(MIN_QUALITY, item.quality - 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -59,16 +62,13 @@ class GildedRose {
|
|||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
private boolean isEnhancingItem(Item item) {
|
private boolean isEnhancingItem(Item item) {
|
||||||
return item.name.equals("Aged Brie") || item.name.equals(BACKSTAGE_PASSES);
|
return item.name.equals(GildedRose.AGED_BRIE) || item.name.equals(BACKSTAGE_PASSES);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param item
|
* @param item
|
||||||
*/
|
*/
|
||||||
private void enhanceItem(Item item) {
|
private void enhanceItem(Item item) {
|
||||||
if (item.quality < 50) {
|
|
||||||
item.quality = item.quality + 1;
|
|
||||||
|
|
||||||
if (item.name.equals(BACKSTAGE_PASSES)) {
|
if (item.name.equals(BACKSTAGE_PASSES)) {
|
||||||
if (isExperingSale(item)) {
|
if (isExperingSale(item)) {
|
||||||
item.quality = item.quality + 1;
|
item.quality = item.quality + 1;
|
||||||
@ -78,7 +78,7 @@ class GildedRose {
|
|||||||
item.quality = item.quality + 1;
|
item.quality = item.quality + 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
item.quality = Integer.min(item.quality + 1, MAX_QUALITY);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -86,7 +86,7 @@ class GildedRose {
|
|||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
private boolean isUrgentSale(Item item) {
|
private boolean isUrgentSale(Item item) {
|
||||||
return item.sellIn < 6 && item.quality < 50;
|
return item.sellIn < 6;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -94,12 +94,11 @@ class GildedRose {
|
|||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
private boolean isExperingSale(Item item) {
|
private boolean isExperingSale(Item item) {
|
||||||
return item.sellIn < 11 && item.quality < 50;
|
return item.sellIn < 11;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param item the item of which the sell in value is updated Only if the item
|
* @param item the item of which the sell in value is updated
|
||||||
* is legendary, do not update this value
|
|
||||||
*/
|
*/
|
||||||
private void updateSellInValue(Item item) {
|
private void updateSellInValue(Item item) {
|
||||||
item.sellIn = item.sellIn - 1;
|
item.sellIn = item.sellIn - 1;
|
||||||
|
|||||||
@ -73,8 +73,8 @@ class GildedRoseTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
void testAgedBrie() {
|
void testAgedBrie() {
|
||||||
Item agedBrie = new Item("Aged Brie", 2, 0);
|
Item agedBrie = new Item(GildedRose.AGED_BRIE, 2, 0);
|
||||||
Item qualityBrie = new Item("Aged Brie", 2, 48);
|
Item qualityBrie = new Item(GildedRose.AGED_BRIE, 2, 48);
|
||||||
Item[] items = new Item[] { agedBrie, qualityBrie };
|
Item[] items = new Item[] { agedBrie, qualityBrie };
|
||||||
GildedRose gildedRose = new GildedRose(items);
|
GildedRose gildedRose = new GildedRose(items);
|
||||||
// day one
|
// day one
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user