mirror of
https://github.com/emilybache/GildedRose-Refactoring-Kata.git
synced 2026-02-27 04:11:09 +00:00
Code refactor
This commit is contained in:
parent
9536fcdc69
commit
a25bcd3db2
@ -3,79 +3,66 @@ package com.gildedrose;
|
|||||||
class GildedRose {
|
class GildedRose {
|
||||||
Item[] items;
|
Item[] items;
|
||||||
|
|
||||||
String itemName;
|
|
||||||
int itemQuality;
|
|
||||||
int itemSellIn;
|
|
||||||
|
|
||||||
public GildedRose(Item[] items) {
|
public GildedRose(Item[] items) {
|
||||||
this.items = items;
|
this.items = items;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void updateQuality() {
|
public void updateQuality() {
|
||||||
for (int i = 0; i < items.length; i++) {
|
for (int i = 0; i < items.length; i++) {
|
||||||
itemName = items[i].name;
|
String itemName = items[i].name;
|
||||||
itemQuality = items[i].quality;
|
int itemQuality = items[i].quality;
|
||||||
itemSellIn = items[i].sellIn;
|
int itemSellIn = items[i].sellIn;
|
||||||
|
|
||||||
if (!itemIsAgedBrie(itemName)
|
adjustQualityNotation(itemName, itemQuality, itemSellIn);
|
||||||
&& !itemIsBackstagePasses(itemName)) {
|
lowerSellInNotation(itemName, itemSellIn);
|
||||||
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);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (itemSellIn < 0) {
|
if (itemSellIn < 0) {
|
||||||
if (!itemIsAgedBrie(itemName)) {
|
if (isDecreasableItem(itemName, itemQuality)) {
|
||||||
if (!itemIsBackstagePasses(itemName)) {
|
decreaseByOne(itemQuality);
|
||||||
if (itemQuality > 0) {
|
} else if (itemQuality < 50) {
|
||||||
if (!itemIsSulfuras(itemName)) {
|
|
||||||
decreaseByOne(itemQuality);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
decreaseByOne(itemQuality);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
if (itemQuality < 50) {
|
|
||||||
increaseByOne(itemQuality);
|
increaseByOne(itemQuality);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void increaseByOne (int itemValue) {
|
public void adjustQualityNotation(String itemName, int itemQuality, int itemSellIn) {
|
||||||
itemValue++;
|
if (isDecreasableItem(itemName, itemQuality)) {
|
||||||
|
decreaseByOne(itemQuality);
|
||||||
|
} else if (qualityLowerThanFifty(itemQuality)) {
|
||||||
|
increaseByOne(itemQuality);
|
||||||
|
backstagePassesExtraQualityCheck(itemName, itemQuality, itemSellIn);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void decreaseByOne (int itemValue) {
|
public void backstagePassesExtraQualityCheck(String itemName, int itemQuality, int itemSellIn) {
|
||||||
itemValue--;
|
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) {
|
public boolean itemIsSulfuras(String itemName) {
|
||||||
return ProjectConstants.SULFURAS.equals(itemName) ? true : false;
|
return ProjectConstants.SULFURAS.equals(itemName) ? true : false;
|
||||||
}
|
}
|
||||||
@ -87,4 +74,19 @@ class GildedRose {
|
|||||||
public boolean itemIsAgedBrie(String itemName) {
|
public boolean itemIsAgedBrie(String itemName) {
|
||||||
return ProjectConstants.AGED_BRIE.equals(itemName) ? true : false;
|
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;
|
GildedRose app;
|
||||||
|
|
||||||
|
Item[] items;
|
||||||
|
|
||||||
@BeforeAll
|
@BeforeAll
|
||||||
public void init() {
|
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);
|
app = new GildedRose(items);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void increaseByOne() {
|
public void increaseByOneTest() {
|
||||||
int initial = 2;
|
int result = app.increaseByOne(2);
|
||||||
app.increaseByOne(initial);
|
assertEquals(3, result);
|
||||||
assertEquals("3", initial);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void decreaseByOne() {
|
public void decreaseByOneTest() {
|
||||||
int initial = 2;
|
int result = app.decreaseByOne(2);
|
||||||
app.decreaseByOne(initial);
|
assertEquals(1, result);
|
||||||
assertEquals("1", initial);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void itemIsSulfuras() {
|
public void itemIsSulfurasTest() {
|
||||||
String itemName = app.items[0].name;
|
String itemName = app.items[0].name;
|
||||||
boolean result = app.itemIsSulfuras(itemName);
|
boolean result = app.itemIsSulfuras(itemName);
|
||||||
assertTrue(result);
|
assertTrue(result);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void ItemIsAgedBrieFalse() {
|
public void ItemIsAgedBrieFalseTest() {
|
||||||
String itemName = app.items[0].name;
|
String itemName = app.items[0].name;
|
||||||
boolean result = app.itemIsAgedBrie(itemName);
|
boolean result = app.itemIsAgedBrie(itemName);
|
||||||
assertFalse(result);
|
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