mirror of
https://github.com/emilybache/GildedRose-Refactoring-Kata.git
synced 2026-02-18 07:51:29 +00:00
Code refactor
This commit is contained in:
parent
9536fcdc69
commit
a25bcd3db2
@ -3,79 +3,66 @@ package com.gildedrose;
|
||||
class GildedRose {
|
||||
Item[] items;
|
||||
|
||||
String itemName;
|
||||
int itemQuality;
|
||||
int itemSellIn;
|
||||
|
||||
public GildedRose(Item[] items) {
|
||||
this.items = items;
|
||||
}
|
||||
|
||||
public void updateQuality() {
|
||||
for (int i = 0; i < items.length; i++) {
|
||||
itemName = items[i].name;
|
||||
itemQuality = items[i].quality;
|
||||
itemSellIn = items[i].sellIn;
|
||||
String itemName = items[i].name;
|
||||
int itemQuality = items[i].quality;
|
||||
int itemSellIn = items[i].sellIn;
|
||||
|
||||
if (!itemIsAgedBrie(itemName)
|
||||
&& !itemIsBackstagePasses(itemName)) {
|
||||
if (itemQuality > 0) {
|
||||
if (!itemIsSulfuras(itemName)) {
|
||||
decreaseByOne(itemQuality);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if (itemQuality < 50) {
|
||||
itemQuality = itemQuality + 1;
|
||||
|
||||
if (itemIsBackstagePasses(itemName)) {
|
||||
if (itemSellIn < 11) {
|
||||
if (itemQuality < 50) {
|
||||
increaseByOne(itemQuality);
|
||||
}
|
||||
}
|
||||
|
||||
if (itemSellIn < 6) {
|
||||
if (itemQuality < 50) {
|
||||
increaseByOne(itemQuality);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!itemIsSulfuras(itemName)) {
|
||||
decreaseByOne(itemSellIn);
|
||||
}
|
||||
adjustQualityNotation(itemName, itemQuality, itemSellIn);
|
||||
lowerSellInNotation(itemName, itemSellIn);
|
||||
|
||||
if (itemSellIn < 0) {
|
||||
if (!itemIsAgedBrie(itemName)) {
|
||||
if (!itemIsBackstagePasses(itemName)) {
|
||||
if (itemQuality > 0) {
|
||||
if (!itemIsSulfuras(itemName)) {
|
||||
decreaseByOne(itemQuality);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
decreaseByOne(itemQuality);
|
||||
}
|
||||
} else {
|
||||
if (itemQuality < 50) {
|
||||
if (isDecreasableItem(itemName, itemQuality)) {
|
||||
decreaseByOne(itemQuality);
|
||||
} else if (itemQuality < 50) {
|
||||
increaseByOne(itemQuality);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void increaseByOne (int itemValue) {
|
||||
itemValue++;
|
||||
public void adjustQualityNotation(String itemName, int itemQuality, int itemSellIn) {
|
||||
if (isDecreasableItem(itemName, itemQuality)) {
|
||||
decreaseByOne(itemQuality);
|
||||
} else if (qualityLowerThanFifty(itemQuality)) {
|
||||
increaseByOne(itemQuality);
|
||||
backstagePassesExtraQualityCheck(itemName, itemQuality, itemSellIn);
|
||||
}
|
||||
}
|
||||
|
||||
public void decreaseByOne (int itemValue) {
|
||||
itemValue--;
|
||||
public void backstagePassesExtraQualityCheck(String itemName, int itemQuality, int itemSellIn) {
|
||||
if (itemIsBackstagePasses(itemName) && qualityLowerThanFifty(itemQuality)) {
|
||||
if (itemSellIn < 11) {
|
||||
increaseByOne(itemQuality);
|
||||
}
|
||||
|
||||
if (itemSellIn < 6) {
|
||||
increaseByOne(itemQuality);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void lowerSellInNotation(String itemName, int itemSellIn) {
|
||||
if (!itemIsSulfuras(itemName)) {
|
||||
decreaseByOne(itemSellIn);
|
||||
}
|
||||
}
|
||||
|
||||
public int increaseByOne (int incomingValue) {
|
||||
return incomingValue += 1;
|
||||
}
|
||||
|
||||
public int decreaseByOne (int incomingValue) {
|
||||
return incomingValue -= 1;
|
||||
}
|
||||
|
||||
|
||||
|
||||
public boolean itemIsSulfuras(String itemName) {
|
||||
return ProjectConstants.SULFURAS.equals(itemName) ? true : false;
|
||||
}
|
||||
@ -87,4 +74,19 @@ class GildedRose {
|
||||
public boolean itemIsAgedBrie(String itemName) {
|
||||
return ProjectConstants.AGED_BRIE.equals(itemName) ? true : false;
|
||||
}
|
||||
|
||||
public boolean qualityHigherThanZero(int itemQuality) {
|
||||
return itemQuality > 0;
|
||||
}
|
||||
|
||||
public boolean qualityLowerThanFifty(int itemQuality) {
|
||||
return itemQuality < 50;
|
||||
}
|
||||
|
||||
public boolean isDecreasableItem(String itemName, int itemQuality) {
|
||||
return qualityHigherThanZero(itemQuality) &&
|
||||
!itemIsAgedBrie(itemName) &&
|
||||
!itemIsBackstagePasses(itemName) &&
|
||||
!itemIsSulfuras(itemName);
|
||||
}
|
||||
}
|
||||
|
||||
@ -12,37 +12,61 @@ public class GildedRoseTest {
|
||||
|
||||
GildedRose app;
|
||||
|
||||
Item[] items;
|
||||
|
||||
@BeforeAll
|
||||
public void init() {
|
||||
Item[] items = new Item[] { new Item(ProjectConstants.SULFURAS, 0, 0) };
|
||||
items = new Item[] { new Item(ProjectConstants.SULFURAS, 0, 0),
|
||||
new Item(ProjectConstants.ELIXIR, 2, 54) };
|
||||
app = new GildedRose(items);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void increaseByOne() {
|
||||
int initial = 2;
|
||||
app.increaseByOne(initial);
|
||||
assertEquals("3", initial);
|
||||
public void increaseByOneTest() {
|
||||
int result = app.increaseByOne(2);
|
||||
assertEquals(3, result);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void decreaseByOne() {
|
||||
int initial = 2;
|
||||
app.decreaseByOne(initial);
|
||||
assertEquals("1", initial);
|
||||
public void decreaseByOneTest() {
|
||||
int result = app.decreaseByOne(2);
|
||||
assertEquals(1, result);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void itemIsSulfuras() {
|
||||
public void itemIsSulfurasTest() {
|
||||
String itemName = app.items[0].name;
|
||||
boolean result = app.itemIsSulfuras(itemName);
|
||||
assertTrue(result);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void ItemIsAgedBrieFalse() {
|
||||
public void ItemIsAgedBrieFalseTest() {
|
||||
String itemName = app.items[0].name;
|
||||
boolean result = app.itemIsAgedBrie(itemName);
|
||||
assertFalse(result);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void qualityComparisonTest() {
|
||||
int firstItemQuality = app.items[0].quality;
|
||||
int secondItemQuality = app.items[1].quality;
|
||||
|
||||
assertFalse(app.qualityHigherThanZero(firstItemQuality));
|
||||
assertTrue(app.qualityHigherThanZero(secondItemQuality));
|
||||
|
||||
assertTrue(app.qualityLowerThanFifty(firstItemQuality));
|
||||
assertFalse(app.qualityLowerThanFifty(secondItemQuality));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void isDecreaseItemTest() {
|
||||
String firstItemName = app.items[0].name;
|
||||
int firstItemQuality = app.items[0].quality;
|
||||
String secondItemName = app.items[1].name;
|
||||
int secondItemQuality = app.items[1].quality;
|
||||
|
||||
assertFalse(app.isDecreasableItem(firstItemName, firstItemQuality));
|
||||
assertTrue(app.isDecreasableItem(secondItemName, secondItemQuality));
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user