From 3547271c33606856f6d00e21ccf716caec48523f Mon Sep 17 00:00:00 2001 From: ismail Date: Mon, 31 Mar 2025 19:45:17 +0200 Subject: [PATCH] refactor level 1 --- .DS_Store | Bin 0 -> 6148 bytes .../main/java/com/gildedrose/GildedRose.java | 109 ++++++++++-------- .../java/com/gildedrose/GildedRoseTest.java | 30 ++++- .../java/com/gildedrose/TexttestFixture.java | 37 ------ 4 files changed, 90 insertions(+), 86 deletions(-) create mode 100644 .DS_Store delete mode 100644 Java/src/test/java/com/gildedrose/TexttestFixture.java diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..5008ddfcf53c02e82d7eee2e57c38e5672ef89f6 GIT binary patch literal 6148 zcmeH~Jr2S!425mzP>H1@V-^m;4Wg<&0T*E43hX&L&p$$qDprKhvt+--jT7}7np#A3 zem<@ulZcFPQ@L2!n>{z**++&mCkOWA81W14cNZlEfg7;MkzE(HCqgga^y>{tEnwC%0;vJ&^%eQ zLs35+`xjp>T0 0) { - if (!items[i].name.equals("Sulfuras, Hand of Ragnaros")) { - items[i].quality = items[i].quality - 1; - } - } - } else { - if (items[i].quality < 50) { - items[i].quality = items[i].quality + 1; + for (Item item : items) { + updateItemQuality(item); + } + } - if (items[i].name.equals("Backstage passes to a TAFKAL80ETC concert")) { - if (items[i].sellIn < 11) { - if (items[i].quality < 50) { - items[i].quality = items[i].quality + 1; - } - } + private void updateItemQuality(Item item) { + switch (item.name) { + case "Aged Brie": + updateQualityForAgedBrie(item); + break; + case "Backstage passes to a TAFKAL80ETC concert": + updateQualityForBackstagePasses(item); + break; + case "Sulfuras, Hand of Ragnaros": + break; + default: + updateQualityForRegularItems(item); + break; + } - if (items[i].sellIn < 6) { - if (items[i].quality < 50) { - items[i].quality = items[i].quality + 1; - } - } - } - } + if (!item.name.equals("Sulfuras, Hand of Ragnaros")) { + item.sellIn--; + } + + if (item.sellIn < 0) { + handleExpiredItem(item); + } + } + + private void updateQualityForAgedBrie(Item item) { + if (item.quality < 50) { + item.quality++; + } + } + + private void updateQualityForBackstagePasses(Item item) { + if (item.quality < 50) { + item.quality++; + if (item.sellIn < 11) { + item.quality = Math.min(item.quality + 1, 50); } - - if (!items[i].name.equals("Sulfuras, Hand of Ragnaros")) { - items[i].sellIn = items[i].sellIn - 1; - } - - if (items[i].sellIn < 0) { - if (!items[i].name.equals("Aged Brie")) { - if (!items[i].name.equals("Backstage passes to a TAFKAL80ETC concert")) { - if (items[i].quality > 0) { - if (!items[i].name.equals("Sulfuras, Hand of Ragnaros")) { - items[i].quality = items[i].quality - 1; - } - } - } else { - items[i].quality = items[i].quality - items[i].quality; - } - } else { - if (items[i].quality < 50) { - items[i].quality = items[i].quality + 1; - } - } + if (item.sellIn < 6) { + item.quality = Math.min(item.quality + 1, 50); } } } + + private void updateQualityForRegularItems(Item item) { + if (item.quality > 0) { + item.quality--; + } + } + + private void handleExpiredItem(Item item) { + switch (item.name) { + case "Aged Brie": + if (item.quality < 50) { + item.quality++; + } + break; + case "Backstage passes to a TAFKAL80ETC concert": + item.quality = 0; + break; + default: + if (item.quality > 0) { + item.quality--; + } + break; + } + } } diff --git a/Java/src/test/java/com/gildedrose/GildedRoseTest.java b/Java/src/test/java/com/gildedrose/GildedRoseTest.java index 8ae29eec..b87892b2 100644 --- a/Java/src/test/java/com/gildedrose/GildedRoseTest.java +++ b/Java/src/test/java/com/gildedrose/GildedRoseTest.java @@ -1,17 +1,39 @@ package com.gildedrose; import org.junit.jupiter.api.Test; - import static org.junit.jupiter.api.Assertions.assertEquals; class GildedRoseTest { @Test - void foo() { - Item[] items = new Item[] { new Item("foo", 0, 0) }; + void testAgedBrieQualityIncreases() { + Item[] items = new Item[] { new Item("Aged Brie", 5, 10) }; GildedRose app = new GildedRose(items); app.updateQuality(); - assertEquals("fixme", app.items[0].name); + assertEquals(11, items[0].quality); } + @Test + void testBackstagePassesQualityIncreases() { + Item[] items = new Item[] { new Item("Backstage passes to a TAFKAL80ETC concert", 10, 20) }; + GildedRose app = new GildedRose(items); + app.updateQuality(); + assertEquals(22, items[0].quality); + } + + @Test + void testRegularItemQualityDecreases() { + Item[] items = new Item[] { new Item("Regular Item", 5, 10) }; + GildedRose app = new GildedRose(items); + app.updateQuality(); + assertEquals(9, items[0].quality); + } + + @Test + void testSulfurasDoesNotChange() { + Item[] items = new Item[] { new Item("Sulfuras, Hand of Ragnaros", 5, 80) }; + GildedRose app = new GildedRose(items); + app.updateQuality(); + assertEquals(80, items[0].quality); + } } diff --git a/Java/src/test/java/com/gildedrose/TexttestFixture.java b/Java/src/test/java/com/gildedrose/TexttestFixture.java deleted file mode 100644 index d059c88f..00000000 --- a/Java/src/test/java/com/gildedrose/TexttestFixture.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.gildedrose; - -public class TexttestFixture { - public static void main(String[] args) { - System.out.println("OMGHAI!"); - - Item[] items = new Item[] { - new Item("+5 Dexterity Vest", 10, 20), // - new Item("Aged Brie", 2, 0), // - new Item("Elixir of the Mongoose", 5, 7), // - new Item("Sulfuras, Hand of Ragnaros", 0, 80), // - new Item("Sulfuras, Hand of Ragnaros", -1, 80), - new Item("Backstage passes to a TAFKAL80ETC concert", 15, 20), - new Item("Backstage passes to a TAFKAL80ETC concert", 10, 49), - new Item("Backstage passes to a TAFKAL80ETC concert", 5, 49), - // this conjured item does not work properly yet - new Item("Conjured Mana Cake", 3, 6) }; - - GildedRose app = new GildedRose(items); - - int days = 2; - if (args.length > 0) { - days = Integer.parseInt(args[0]) + 1; - } - - for (int i = 0; i < days; i++) { - System.out.println("-------- day " + i + " --------"); - System.out.println("name, sellIn, quality"); - for (Item item : items) { - System.out.println(item); - } - System.out.println(); - app.updateQuality(); - } - } - -}