From ab3f5032dd9532cf6864eaa7fa6bbd1c1654a43a Mon Sep 17 00:00:00 2001 From: Velizar Todorov Date: Fri, 26 Nov 2021 14:58:12 +0100 Subject: [PATCH] :hammer: refactoring --- .../gildedrose/item_helpers/ItemFactory.java | 2 +- .../java/com/gildedrose/main/GildedRose.java | 4 +- .../java/com/gildedrose/GildedRoseTest.java | 77 ------------------- .../java/com/gildedrose/TexttestFixture.java | 42 ---------- .../com/gildedrose/TexttestFixtureTemp.java | 42 ---------- .../items/{ => helper}/TestHelper.java | 2 +- .../items/{ => items}/AgedBrieItemTest.java | 6 +- .../{ => items}/BackstagePassItemTest.java | 6 +- .../items/{ => items}/ConjuredItemTest.java | 6 +- .../items/{ => items}/LegendaryItemTest.java | 6 +- .../items/{ => items}/NormalItemTest.java | 6 +- .../gildedrose/items/main/ItemClassTest.java | 26 +++++++ .../MultipleItemsTest.java | 2 +- 13 files changed, 46 insertions(+), 181 deletions(-) delete mode 100644 Java/src/test/java/com/gildedrose/GildedRoseTest.java delete mode 100644 Java/src/test/java/com/gildedrose/TexttestFixture.java delete mode 100644 Java/src/test/java/com/gildedrose/TexttestFixtureTemp.java rename Java/src/test/java/com/gildedrose/items/{ => helper}/TestHelper.java (96%) rename Java/src/test/java/com/gildedrose/items/{ => items}/AgedBrieItemTest.java (82%) rename Java/src/test/java/com/gildedrose/items/{ => items}/BackstagePassItemTest.java (86%) rename Java/src/test/java/com/gildedrose/items/{ => items}/ConjuredItemTest.java (82%) rename Java/src/test/java/com/gildedrose/items/{ => items}/LegendaryItemTest.java (90%) rename Java/src/test/java/com/gildedrose/items/{ => items}/NormalItemTest.java (82%) create mode 100644 Java/src/test/java/com/gildedrose/items/main/ItemClassTest.java rename Java/src/test/java/com/gildedrose/items/{ => multiple_items}/MultipleItemsTest.java (98%) diff --git a/Java/src/main/java/com/gildedrose/item_helpers/ItemFactory.java b/Java/src/main/java/com/gildedrose/item_helpers/ItemFactory.java index 3b71d01a..81af33d1 100644 --- a/Java/src/main/java/com/gildedrose/item_helpers/ItemFactory.java +++ b/Java/src/main/java/com/gildedrose/item_helpers/ItemFactory.java @@ -14,7 +14,7 @@ public class ItemFactory { private ItemFactory() { } - public static ItemType getItem(Item item) { + public static ItemType getItemType(Item item) { validateQuality(item); ItemName itemName = getItemName(item.name); switch (itemName) { diff --git a/Java/src/main/java/com/gildedrose/main/GildedRose.java b/Java/src/main/java/com/gildedrose/main/GildedRose.java index 5a5b8a69..b04c1a10 100644 --- a/Java/src/main/java/com/gildedrose/main/GildedRose.java +++ b/Java/src/main/java/com/gildedrose/main/GildedRose.java @@ -2,7 +2,7 @@ package com.gildedrose.main; import java.util.List; -import static com.gildedrose.item_helpers.ItemFactory.getItem; +import static com.gildedrose.item_helpers.ItemFactory.getItemType; import static java.util.Collections.singletonList; public class GildedRose { @@ -17,6 +17,6 @@ public class GildedRose { } public void updateQuality() { - items.forEach(item -> getItem(item).updateQuality()); + items.forEach(item -> getItemType(item).updateQuality()); } } diff --git a/Java/src/test/java/com/gildedrose/GildedRoseTest.java b/Java/src/test/java/com/gildedrose/GildedRoseTest.java deleted file mode 100644 index d36f24ef..00000000 --- a/Java/src/test/java/com/gildedrose/GildedRoseTest.java +++ /dev/null @@ -1,77 +0,0 @@ -package com.gildedrose; - -import com.gildedrose.main.GildedRose; -import com.gildedrose.main.Item; -import org.junit.jupiter.api.Test; - -import java.util.Arrays; -import java.util.List; - -import static com.gildedrose.item_helpers.ItemName.*; - -class GildedRoseTest { - - @Test - void testNormalItem() { - int days = 20; - Item normalItem = new Item(NORMAL.toString(), 10, 20); - GildedRose app = new GildedRose(normalItem); - app.updateQuality(); - for (int i = 0; i < days; i++) { - app.updateQuality(); - System.out.println("name, sell-in, quality"); - System.out.println(normalItem); - } - } - - @Test - void testConjuredItem() { - int days = 20; - Item normalItem = new Item(CONJURED.toString(), 10, 40); - GildedRose app = new GildedRose(normalItem); - for (int i = 0; i < days; i++) { - app.updateQuality(); - System.out.println("name, sell-in, quality"); - System.out.println(normalItem); - } - } - - @Test - void testLegendaryItem() { - int days = 20; - Item legendaryItem = new Item(LEGENDARY.toString(), 10, 80); - GildedRose app = new GildedRose(legendaryItem); - for (int i = 0; i < days; i++) { - app.updateQuality(); - System.out.println("name, sell-in, quality"); - System.out.println(legendaryItem); - } - } - - @Test - void testAgedBrieItem() { - int days = 20; - Item agedBrie = new Item(AGED_BRIE.toString(), 10, 40); - GildedRose app = new GildedRose(agedBrie); - for (int i = 0; i < days; i++) { - app.updateQuality(); - System.out.println("name, sell-in, quality"); - System.out.println(agedBrie); - } - } - - @Test - void testBackstagePassItem() { - int days = 20; - List backStagePass = Arrays.asList(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)); - GildedRose app = new GildedRose(backStagePass); - for (int i = 0; i < days; i++) { - app.updateQuality(); - System.out.println("name, sell-in, quality"); - System.out.println(backStagePass); - } - } - -} 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 b9060581..00000000 --- a/Java/src/test/java/com/gildedrose/TexttestFixture.java +++ /dev/null @@ -1,42 +0,0 @@ -package com.gildedrose; - -import com.gildedrose.main.GildedRose; -import com.gildedrose.main.Item; - -import static java.util.Arrays.asList; - -public class TexttestFixture { - public static void main(String[] args) { - System.out.println("OMGHAI!"); - - Item[] items = new Item[]{ - new Item("Aged Brie", 2, 0), // - new Item("+5 Dexterity Vest", 10, 20), // - 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(asList(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(); - } - } - -} diff --git a/Java/src/test/java/com/gildedrose/TexttestFixtureTemp.java b/Java/src/test/java/com/gildedrose/TexttestFixtureTemp.java deleted file mode 100644 index 5670738f..00000000 --- a/Java/src/test/java/com/gildedrose/TexttestFixtureTemp.java +++ /dev/null @@ -1,42 +0,0 @@ -package com.gildedrose; - -import com.gildedrose.main.GildedRose; -import com.gildedrose.main.Item; - -import static java.util.Arrays.asList; - -public class TexttestFixtureTemp { - 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(asList(items)); - - int days = 20; - 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(); - } - } - -} diff --git a/Java/src/test/java/com/gildedrose/items/TestHelper.java b/Java/src/test/java/com/gildedrose/items/helper/TestHelper.java similarity index 96% rename from Java/src/test/java/com/gildedrose/items/TestHelper.java rename to Java/src/test/java/com/gildedrose/items/helper/TestHelper.java index 4e18c218..838fa069 100644 --- a/Java/src/test/java/com/gildedrose/items/TestHelper.java +++ b/Java/src/test/java/com/gildedrose/items/helper/TestHelper.java @@ -1,4 +1,4 @@ -package com.gildedrose.items; +package com.gildedrose.items.helper; import com.gildedrose.main.GildedRose; import com.gildedrose.main.Item; diff --git a/Java/src/test/java/com/gildedrose/items/AgedBrieItemTest.java b/Java/src/test/java/com/gildedrose/items/items/AgedBrieItemTest.java similarity index 82% rename from Java/src/test/java/com/gildedrose/items/AgedBrieItemTest.java rename to Java/src/test/java/com/gildedrose/items/items/AgedBrieItemTest.java index c05a84d4..1b71cebe 100644 --- a/Java/src/test/java/com/gildedrose/items/AgedBrieItemTest.java +++ b/Java/src/test/java/com/gildedrose/items/items/AgedBrieItemTest.java @@ -1,4 +1,4 @@ -package com.gildedrose.items; +package com.gildedrose.items.items; import com.gildedrose.main.Item; import org.junit.jupiter.api.MethodOrderer.OrderAnnotation; @@ -7,8 +7,8 @@ import org.junit.jupiter.api.Test; import org.junit.jupiter.api.TestMethodOrder; import static com.gildedrose.item_helpers.ItemName.AGED_BRIE; -import static com.gildedrose.items.TestHelper.testItem; -import static com.gildedrose.items.TestHelper.testItemException; +import static com.gildedrose.items.helper.TestHelper.testItem; +import static com.gildedrose.items.helper.TestHelper.testItemException; @TestMethodOrder(OrderAnnotation.class) class AgedBrieItemTest { diff --git a/Java/src/test/java/com/gildedrose/items/BackstagePassItemTest.java b/Java/src/test/java/com/gildedrose/items/items/BackstagePassItemTest.java similarity index 86% rename from Java/src/test/java/com/gildedrose/items/BackstagePassItemTest.java rename to Java/src/test/java/com/gildedrose/items/items/BackstagePassItemTest.java index df153b01..f78c2f51 100644 --- a/Java/src/test/java/com/gildedrose/items/BackstagePassItemTest.java +++ b/Java/src/test/java/com/gildedrose/items/items/BackstagePassItemTest.java @@ -1,4 +1,4 @@ -package com.gildedrose.items; +package com.gildedrose.items.items; import com.gildedrose.main.Item; import org.junit.jupiter.api.MethodOrderer.OrderAnnotation; @@ -7,8 +7,8 @@ import org.junit.jupiter.api.Test; import org.junit.jupiter.api.TestMethodOrder; import static com.gildedrose.item_helpers.ItemName.BACKSTAGE_PASS; -import static com.gildedrose.items.TestHelper.testItem; -import static com.gildedrose.items.TestHelper.testItemException; +import static com.gildedrose.items.helper.TestHelper.testItem; +import static com.gildedrose.items.helper.TestHelper.testItemException; @TestMethodOrder(OrderAnnotation.class) class BackstagePassItemTest { diff --git a/Java/src/test/java/com/gildedrose/items/ConjuredItemTest.java b/Java/src/test/java/com/gildedrose/items/items/ConjuredItemTest.java similarity index 82% rename from Java/src/test/java/com/gildedrose/items/ConjuredItemTest.java rename to Java/src/test/java/com/gildedrose/items/items/ConjuredItemTest.java index d15385ad..8fc4684e 100644 --- a/Java/src/test/java/com/gildedrose/items/ConjuredItemTest.java +++ b/Java/src/test/java/com/gildedrose/items/items/ConjuredItemTest.java @@ -1,4 +1,4 @@ -package com.gildedrose.items; +package com.gildedrose.items.items; import com.gildedrose.main.Item; import org.junit.jupiter.api.MethodOrderer.OrderAnnotation; @@ -7,8 +7,8 @@ import org.junit.jupiter.api.Test; import org.junit.jupiter.api.TestMethodOrder; import static com.gildedrose.item_helpers.ItemName.CONJURED; -import static com.gildedrose.items.TestHelper.testItem; -import static com.gildedrose.items.TestHelper.testItemException; +import static com.gildedrose.items.helper.TestHelper.testItem; +import static com.gildedrose.items.helper.TestHelper.testItemException; @TestMethodOrder(OrderAnnotation.class) class ConjuredItemTest { diff --git a/Java/src/test/java/com/gildedrose/items/LegendaryItemTest.java b/Java/src/test/java/com/gildedrose/items/items/LegendaryItemTest.java similarity index 90% rename from Java/src/test/java/com/gildedrose/items/LegendaryItemTest.java rename to Java/src/test/java/com/gildedrose/items/items/LegendaryItemTest.java index 1fba1127..db5cb8b9 100644 --- a/Java/src/test/java/com/gildedrose/items/LegendaryItemTest.java +++ b/Java/src/test/java/com/gildedrose/items/items/LegendaryItemTest.java @@ -1,4 +1,4 @@ -package com.gildedrose.items; +package com.gildedrose.items.items; import com.gildedrose.main.GildedRose; import com.gildedrose.main.Item; @@ -10,8 +10,8 @@ import org.junit.jupiter.api.TestMethodOrder; import static com.gildedrose.item_helpers.ItemName.LEGENDARY; import static com.gildedrose.items.LegendaryItem.LEGENDARY_ITEM_QUALITY; import static com.gildedrose.items.LegendaryItem.NOT_LEGENDARY_ITEM_ERROR_MESSAGE; -import static com.gildedrose.items.TestHelper.testItem; -import static com.gildedrose.items.TestHelper.testItemException; +import static com.gildedrose.items.helper.TestHelper.testItem; +import static com.gildedrose.items.helper.TestHelper.testItemException; import static org.junit.jupiter.api.Assertions.assertThrows; import static org.junit.jupiter.api.Assertions.assertTrue; diff --git a/Java/src/test/java/com/gildedrose/items/NormalItemTest.java b/Java/src/test/java/com/gildedrose/items/items/NormalItemTest.java similarity index 82% rename from Java/src/test/java/com/gildedrose/items/NormalItemTest.java rename to Java/src/test/java/com/gildedrose/items/items/NormalItemTest.java index c4adf4e7..ff62d726 100644 --- a/Java/src/test/java/com/gildedrose/items/NormalItemTest.java +++ b/Java/src/test/java/com/gildedrose/items/items/NormalItemTest.java @@ -1,4 +1,4 @@ -package com.gildedrose.items; +package com.gildedrose.items.items; import com.gildedrose.main.Item; import org.junit.jupiter.api.MethodOrderer.OrderAnnotation; @@ -7,8 +7,8 @@ import org.junit.jupiter.api.Test; import org.junit.jupiter.api.TestMethodOrder; import static com.gildedrose.item_helpers.ItemName.NORMAL; -import static com.gildedrose.items.TestHelper.testItem; -import static com.gildedrose.items.TestHelper.testItemException; +import static com.gildedrose.items.helper.TestHelper.testItem; +import static com.gildedrose.items.helper.TestHelper.testItemException; @TestMethodOrder(OrderAnnotation.class) class NormalItemTest { diff --git a/Java/src/test/java/com/gildedrose/items/main/ItemClassTest.java b/Java/src/test/java/com/gildedrose/items/main/ItemClassTest.java new file mode 100644 index 00000000..2785d5b4 --- /dev/null +++ b/Java/src/test/java/com/gildedrose/items/main/ItemClassTest.java @@ -0,0 +1,26 @@ +package com.gildedrose.items.main; + +import com.gildedrose.main.Item; +import org.junit.jupiter.api.MethodOrderer.OrderAnnotation; +import org.junit.jupiter.api.Order; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.TestMethodOrder; + +import static com.gildedrose.item_helpers.ItemName.AGED_BRIE; +import static org.junit.jupiter.api.Assertions.assertEquals; + +@TestMethodOrder(OrderAnnotation.class) +class ItemClassTest { + + private final Item item = new Item(AGED_BRIE.toString(), 5, 20); + + @Test + @Order(1) + void testItemSuccess() { + assertEquals(AGED_BRIE.toString(), item.name); + assertEquals(5, item.sellIn); + assertEquals(20, item.quality); + assertEquals("Aged Brie, 5, 20", item.toString()); + } + +} diff --git a/Java/src/test/java/com/gildedrose/items/MultipleItemsTest.java b/Java/src/test/java/com/gildedrose/items/multiple_items/MultipleItemsTest.java similarity index 98% rename from Java/src/test/java/com/gildedrose/items/MultipleItemsTest.java rename to Java/src/test/java/com/gildedrose/items/multiple_items/MultipleItemsTest.java index 3cb78759..3f2d5061 100644 --- a/Java/src/test/java/com/gildedrose/items/MultipleItemsTest.java +++ b/Java/src/test/java/com/gildedrose/items/multiple_items/MultipleItemsTest.java @@ -1,4 +1,4 @@ -package com.gildedrose.items; +package com.gildedrose.items.multiple_items; import com.gildedrose.main.GildedRose; import com.gildedrose.main.Item;