From 29f0e257aacd184cb858acf222766afc0d182b65 Mon Sep 17 00:00:00 2001 From: brianblessou Date: Sun, 12 May 2019 16:15:55 +0200 Subject: [PATCH] Create three classes for BackStageItem, AgedBrieItem and RegularItem --- .../main/java/com/gildedrose/AgedBrie.java | 32 +++++++ .../java/com/gildedrose/BackStageItem.java | 38 +++++++++ .../main/java/com/gildedrose/GildedRose.java | 85 ------------------- .../java/com/gildedrose/GildedRoseItem.java | 38 +++++++++ .../main/java/com/gildedrose/RegularItem.java | 40 +++++++++ ...dRoseTest.java => GildedRoseItemTest.java} | 4 +- .../java/com/gildedrose/TexttestFixture.java | 2 +- 7 files changed, 151 insertions(+), 88 deletions(-) create mode 100644 Java/src/main/java/com/gildedrose/AgedBrie.java create mode 100644 Java/src/main/java/com/gildedrose/BackStageItem.java delete mode 100644 Java/src/main/java/com/gildedrose/GildedRose.java create mode 100644 Java/src/main/java/com/gildedrose/GildedRoseItem.java create mode 100644 Java/src/main/java/com/gildedrose/RegularItem.java rename Java/src/test/java/com/gildedrose/{GildedRoseTest.java => GildedRoseItemTest.java} (98%) diff --git a/Java/src/main/java/com/gildedrose/AgedBrie.java b/Java/src/main/java/com/gildedrose/AgedBrie.java new file mode 100644 index 00000000..89de2fd5 --- /dev/null +++ b/Java/src/main/java/com/gildedrose/AgedBrie.java @@ -0,0 +1,32 @@ +package com.gildedrose; + +public class AgedBrie { + private Item item; + + public AgedBrie(Item item) { + this.item=item; + } + + public void updateQuaility() { + increaseQuality(); + if (itemHasExpired()) { + increaseQuality(); + } + } + + private void increaseQuality() { + if (item.quality < 50) { + item.quality += 1; + } + } + + private boolean itemHasExpired() { + boolean condition; + if (item.sellIn < 0) { + condition = true; + } else { + condition = false; + } + return condition; + } +} diff --git a/Java/src/main/java/com/gildedrose/BackStageItem.java b/Java/src/main/java/com/gildedrose/BackStageItem.java new file mode 100644 index 00000000..6a6e6e27 --- /dev/null +++ b/Java/src/main/java/com/gildedrose/BackStageItem.java @@ -0,0 +1,38 @@ +package com.gildedrose; + +public class BackStageItem { + private Item item; + + public BackStageItem(Item item) { + this.item=item; + } + + public void update() { + increaseQuality(); + if (item.sellIn < 10) { + increaseQuality(); + } + if (item.sellIn < 5) { + increaseQuality(); + } + if (itemHasExpired()) { + item.quality -= item.quality; + } + } + + private void increaseQuality() { + if (item.quality < 50) { + item.quality += 1; + } + } + + private boolean itemHasExpired() { + boolean condition; + if (item.sellIn < 0) { + condition = true; + } else { + condition = false; + } + return condition; + } +} diff --git a/Java/src/main/java/com/gildedrose/GildedRose.java b/Java/src/main/java/com/gildedrose/GildedRose.java deleted file mode 100644 index b18565a4..00000000 --- a/Java/src/main/java/com/gildedrose/GildedRose.java +++ /dev/null @@ -1,85 +0,0 @@ -package com.gildedrose; - -class GildedRose { - Item[] items; - String SULFURA = "Sulfuras, Hand of Ragnaros"; - String AGED_BRIE = "Aged Brie"; - String BACKSTAGE = "Backstage passes to a TAFKAL80ETC concert"; - - public GildedRose(Item[] items) { - this.items = items; - } - - private void increaseQuality(Item item) { - if (item.quality < 50) { - item.quality += 1; - } - } - - private void decreaseQuality(Item item) { - if (item.quality > 0) { - item.quality -= 1; - } - } - - private void updateNumberOfdayToSellRemaining(Item item) { - item.sellIn -= 1; - } - - private boolean itemHasExpired(Item item) { - boolean condition; - if (item.sellIn < 0) { - condition = true; - } else { - condition = false; - } - return condition; - } - - private void decreaseQualityTwice(Item item) { - decreaseQuality(item); - decreaseQuality(item); - } - - private void updateAgedBrieQuaility(Item item) { - increaseQuality(item); - if (itemHasExpired(item)) { - increaseQuality(item); - } - } - - private void updateBackstageQuaility(Item item) { - increaseQuality(item); - if (item.sellIn < 10) { - increaseQuality(item); - } - if (item.sellIn < 5) { - increaseQuality(item); - } - if (itemHasExpired(item)) { - item.quality -= item.quality; - } - } - - private void updateQualityItem(Item item) { - if (item.name.equals(AGED_BRIE)) { - updateAgedBrieQuaility(item); - } else if (item.name.equals(BACKSTAGE)) { - updateBackstageQuaility(item); - } else { - if (itemHasExpired(item)) { - decreaseQualityTwice(item); - } else { - decreaseQuality(item); - } - } - } - - public void updateQuality() { - for (Item item : items) { - if (item.name.equals(SULFURA)) {continue;} - updateNumberOfdayToSellRemaining(item); - updateQualityItem(item); - } - } -} diff --git a/Java/src/main/java/com/gildedrose/GildedRoseItem.java b/Java/src/main/java/com/gildedrose/GildedRoseItem.java new file mode 100644 index 00000000..f3489042 --- /dev/null +++ b/Java/src/main/java/com/gildedrose/GildedRoseItem.java @@ -0,0 +1,38 @@ +package com.gildedrose; + +class GildedRoseItem { + Item[] items; + public static final String SULFURA = "Sulfuras, Hand of Ragnaros"; + public static final String AGED_BRIE = "Aged Brie"; + public static final String BACKSTAGE = "Backstage passes to a TAFKAL80ETC concert"; + + + public GildedRoseItem(Item[] items) { + this.items = items; + } + + private void updateNumberOfdayToSellRemaining(Item item) { + item.sellIn -= 1; + } + + private void updateQualityItem(Item item) { + if (item.name.equals(AGED_BRIE)) { + AgedBrie agedBrieItem = new AgedBrie(item); + agedBrieItem.updateQuaility(); + } else if (item.name.equals(BACKSTAGE)) { + BackStageItem backStageItem = new BackStageItem(item); + backStageItem.update(); + } else { + RegularItem regularItem = new RegularItem(item); + regularItem.updateQuality(); + } + } + + public void updateQuality() { + for (Item item : items) { + if (item.name.equals(SULFURA)) {continue;} + updateNumberOfdayToSellRemaining(item); + updateQualityItem(item); + } + } +} diff --git a/Java/src/main/java/com/gildedrose/RegularItem.java b/Java/src/main/java/com/gildedrose/RegularItem.java new file mode 100644 index 00000000..6976fd38 --- /dev/null +++ b/Java/src/main/java/com/gildedrose/RegularItem.java @@ -0,0 +1,40 @@ +package com.gildedrose; + +public class RegularItem { + private Item item; + + public RegularItem(Item item) { + this.item = item; + } + + public void updateQuality() { + if (itemHasExpired(item)) { + decreaseQualityTwice(); + } else { + decreaseQuality(); + } + } + + private boolean itemHasExpired(Item item) { + boolean condition; + if (item.sellIn < 0) { + condition = true; + } else { + condition = false; + } + return condition; + } + + + private void decreaseQualityTwice() { + decreaseQuality(); + decreaseQuality(); + } + + private void decreaseQuality() { + if (item.quality > 0) { + item.quality -= 1; + } + } + +} diff --git a/Java/src/test/java/com/gildedrose/GildedRoseTest.java b/Java/src/test/java/com/gildedrose/GildedRoseItemTest.java similarity index 98% rename from Java/src/test/java/com/gildedrose/GildedRoseTest.java rename to Java/src/test/java/com/gildedrose/GildedRoseItemTest.java index 3e4d6747..5443514c 100644 --- a/Java/src/test/java/com/gildedrose/GildedRoseTest.java +++ b/Java/src/test/java/com/gildedrose/GildedRoseItemTest.java @@ -5,7 +5,7 @@ import java.util.HashMap; import org.junit.Test; -public class GildedRoseTest { +public class GildedRoseItemTest { private Item[] itemsSample = new Item[]{new Item("+5 Dexterity Vest", 10, 20), // new Item("Aged Brie", 2, 0), // new Item("Elixir of the Mongoose", 5, 7), // @@ -14,7 +14,7 @@ public class GildedRoseTest { // this conjured item does not work properly yet new Item("Conjured Mana Cake", 3, 6) }; - private GildedRose app = new GildedRose(itemsSample); + private GildedRoseItem app = new GildedRoseItem(itemsSample); /** * Test if item.sellIn and item.quality is the same that expected after a number of day. diff --git a/Java/src/test/java/com/gildedrose/TexttestFixture.java b/Java/src/test/java/com/gildedrose/TexttestFixture.java index d059c88f..9f47a33a 100644 --- a/Java/src/test/java/com/gildedrose/TexttestFixture.java +++ b/Java/src/test/java/com/gildedrose/TexttestFixture.java @@ -16,7 +16,7 @@ public class TexttestFixture { // this conjured item does not work properly yet new Item("Conjured Mana Cake", 3, 6) }; - GildedRose app = new GildedRose(items); + GildedRoseItem app = new GildedRoseItem(items); int days = 2; if (args.length > 0) {