From cd234fa32a7641b8d9f65a6eb069d924d8f9a61a Mon Sep 17 00:00:00 2001 From: Mohamed Taman Date: Wed, 30 Sep 2020 14:02:22 +0200 Subject: [PATCH] Step #A3-12: Implement New Feature business logic --- .../main/java/com/gildedrose/GildedRose.java | 31 ++++++++++++++----- 1 file changed, 23 insertions(+), 8 deletions(-) diff --git a/Gilded Rose/src/main/java/com/gildedrose/GildedRose.java b/Gilded Rose/src/main/java/com/gildedrose/GildedRose.java index b64ae4e..18be69d 100755 --- a/Gilded Rose/src/main/java/com/gildedrose/GildedRose.java +++ b/Gilded Rose/src/main/java/com/gildedrose/GildedRose.java @@ -17,13 +17,21 @@ public GildedRose(Item[] items) { public void updateQuality() { for (final Item item : items) { handleIfNormalItem(item); - handleIfAgedBrie(item); - handleIfBackstagePasses(item); - handleIfSulfuras(item); + handleIfAgedBrieItem(item); + handleIfBackstagePassesItem(item); + handleIfSulfurasItem(item); + handleIfConjuredItem(item); } } - private void handleIfSulfuras(Item item) { + private void handleIfConjuredItem(Item item) { + if (isConjured(item)) { + item.sellIn--; + item.quality = item.quality - 2; + } + } + + private void handleIfSulfurasItem(Item item) { if (isSulfuras(item)) { // We always write the least amount of code to make the pin-down // tests go green. In this case, we didn't have to write any @@ -31,7 +39,7 @@ private void handleIfSulfuras(Item item) { } } - private void handleIfBackstagePasses(Item item) { + private void handleIfBackstagePassesItem(Item item) { if (isBackstagePasses(item)) { item.sellIn--; if (item.sellIn <= 0) { @@ -49,7 +57,7 @@ private void handleIfBackstagePasses(Item item) { } } - private void handleIfAgedBrie(Item item) { + private void handleIfAgedBrieItem(Item item) { if (isAgedBrie(item)) { item.sellIn--; if (item.sellIn <= 0) { @@ -76,7 +84,14 @@ private void handleIfNormalItem(Item item) { } private boolean isNormalItem(Item item) { - return !(isAgedBrie(item) || isBackstagePasses(item) || isSulfuras(item)); + return !(isAgedBrie(item) || + isBackstagePasses(item) || + isSulfuras(item) || + isConjured(item)); + } + + private boolean isConjured(Item item) { + return item.name.equals(CONJURED); } private boolean isBackstagePasses(Item item) { @@ -90,4 +105,4 @@ private boolean isSulfuras(Item item) { private boolean isAgedBrie(Item item) { return item.name.equals(AGED_BRIE); } -} \ No newline at end of file +}