From 740c58ef2d7c5a3c10aae31b2db61fe2977fc2a9 Mon Sep 17 00:00:00 2001 From: Vijay G Date: Mon, 12 Jun 2023 21:55:34 +0530 Subject: [PATCH] Introduced new item "Conjured" --- .../com/gildedrose/config/ProductFactory.java | 2 ++ .../com/gildedrose/enums/ProductType.java | 3 ++- .../java/com/gildedrose/types/Conjured.java | 16 ++++++++++++++ .../com/gildedrose/types/ConjuredTest.java | 21 +++++++++++++++++++ 4 files changed, 41 insertions(+), 1 deletion(-) create mode 100644 Java/src/main/java/com/gildedrose/types/Conjured.java create mode 100644 Java/src/test/java/com/gildedrose/types/ConjuredTest.java diff --git a/Java/src/main/java/com/gildedrose/config/ProductFactory.java b/Java/src/main/java/com/gildedrose/config/ProductFactory.java index 9df197f8..62065bb7 100644 --- a/Java/src/main/java/com/gildedrose/config/ProductFactory.java +++ b/Java/src/main/java/com/gildedrose/config/ProductFactory.java @@ -8,6 +8,7 @@ import com.gildedrose.enums.ProductType; import com.gildedrose.generic.ItemType; import com.gildedrose.types.AgedBrie; import com.gildedrose.types.Backstage; +import com.gildedrose.types.Conjured; import com.gildedrose.types.Others; import com.gildedrose.types.Sulfuras; @@ -24,6 +25,7 @@ public class ProductFactory { productMap.put(ProductType.AGED_BRIE, new AgedBrie()); productMap.put(ProductType.SULFURAS, new Sulfuras()); productMap.put(ProductType.BACKSTAGE_PASSES, new Backstage()); + productMap.put(ProductType.CONJURED, new Conjured()); } @SuppressWarnings("rawtypes") diff --git a/Java/src/main/java/com/gildedrose/enums/ProductType.java b/Java/src/main/java/com/gildedrose/enums/ProductType.java index 833f9e9e..17c64122 100644 --- a/Java/src/main/java/com/gildedrose/enums/ProductType.java +++ b/Java/src/main/java/com/gildedrose/enums/ProductType.java @@ -9,7 +9,8 @@ public enum ProductType { AGED_BRIE("Aged Brie"), BACKSTAGE_PASSES("Backstage passes to a TAFKAL80ETC concert"), - SULFURAS("Sulfuras, Hand of Ragnaros"); + SULFURAS("Sulfuras, Hand of Ragnaros"), + CONJURED("Conjured Mana Cake"); private final String productName; diff --git a/Java/src/main/java/com/gildedrose/types/Conjured.java b/Java/src/main/java/com/gildedrose/types/Conjured.java new file mode 100644 index 00000000..f8826a54 --- /dev/null +++ b/Java/src/main/java/com/gildedrose/types/Conjured.java @@ -0,0 +1,16 @@ +package com.gildedrose.types; + +import com.gildedrose.Item; + +/*** + * "Conjured" items degrade in Quality twice as fast as normal items + * @author VIJAY G + * + */ +public class Conjured extends Others { + + public void decreaseQualityByValue(Item item, Integer value) { + item.quality -= 2; + } + +} diff --git a/Java/src/test/java/com/gildedrose/types/ConjuredTest.java b/Java/src/test/java/com/gildedrose/types/ConjuredTest.java new file mode 100644 index 00000000..72f01ce3 --- /dev/null +++ b/Java/src/test/java/com/gildedrose/types/ConjuredTest.java @@ -0,0 +1,21 @@ +package com.gildedrose.types; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +import org.junit.jupiter.api.Test; + +import com.gildedrose.Item; +import com.gildedrose.enums.ProductType; + +public class ConjuredTest { + + @Test + public void testConjuredUpdateQuality() { + Item item = new Item(ProductType.CONJURED.name(), 2, 3); + Conjured conjured = new Conjured(); + conjured.updateQuality(item); + assertEquals(item.quality, 1); + assertEquals(item.sellIn, 1); + } + +}