Junit test cases & loggers for each items

This commit is contained in:
Vijay G 2023-06-12 21:54:45 +05:30
parent d1f7a4c85e
commit 45c0a3a53b
7 changed files with 152 additions and 16 deletions

View File

@ -0,0 +1,23 @@
package com.gildedrose.logger;
import java.util.logging.ConsoleHandler;
import java.util.logging.Logger;
public class GildedRoseLogger {
private static final Logger logger = Logger.getLogger(GildedRoseLogger.class.getName());
private GildedRoseLogger() {
}
static {
logger.setUseParentHandlers(false);
ConsoleHandler handler = new ConsoleHandler();
logger.addHandler(handler);
}
public static Logger getLogger() {
return logger;
}
}

View File

@ -1,36 +1,39 @@
package com.gildedrose;
import com.gildedrose.config.ProductFactory;
import com.gildedrose.enums.ProductType;
import com.gildedrose.generic.ItemType;
import com.gildedrose.logger.GildedRoseLogger;
public class TexttestFixture {
public static void main(String[] args) {
System.out.println("OMGHAI!");
GildedRoseLogger.getLogger().info("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("+5 Dexterity Vest", 2, 84),
new Item("Aged Brie", 5, 10),
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) };
new Item("Conjured Mana Cake", 10, 14)
};
GildedRose app = new GildedRose(items);
int days = 2;
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);
GildedRoseLogger.getLogger().info("-------- day " + i + " --------");
GildedRoseLogger.getLogger().info("name, sellIn, quality");
for (Item item : items) {
ItemType itemType = ProductFactory.get(ProductType.getEnumByString(item.name));
GildedRoseLogger.getLogger().info(item.toString());
itemType.updateQuality(item);
}
System.out.println();
app.updateQuality();
}
}

View File

@ -0,0 +1,27 @@
package com.gildedrose.config;
import static org.junit.jupiter.api.Assertions.assertTrue;
import org.junit.jupiter.api.Test;
import com.gildedrose.enums.ProductType;
import com.gildedrose.generic.ItemType;
import com.gildedrose.types.AgedBrie;
import com.gildedrose.types.Backstage;
import com.gildedrose.types.Others;
public class ProductFactoryTest {
@Test
public void testGetItems() {
ItemType agedBreiItemType = ProductFactory.get(ProductType.AGED_BRIE);
assertTrue(agedBreiItemType instanceof AgedBrie);
ItemType backstageItemType = ProductFactory.get(ProductType.BACKSTAGE_PASSES);
assertTrue(backstageItemType instanceof Backstage);
ItemType otherItemType = ProductFactory.get(null);
assertTrue(otherItemType instanceof Others);
}
}

View File

@ -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 AgedBrieTest {
@Test
public void testAgedBrieUpdateQuality() {
Item item = new Item(ProductType.AGED_BRIE.name(), 2, 3);
AgedBrie agedBrie = new AgedBrie();
agedBrie.updateQuality(item);
assertEquals(item.quality, 4);
assertEquals(item.sellIn, 1);
}
}

View File

@ -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 BackstageTest {
@Test
public void testBackstageUpdateQuality() {
Item item = new Item(ProductType.BACKSTAGE_PASSES.name(), 2, 3);
Backstage backstage = new Backstage();
backstage.updateQuality(item);
assertEquals(item.quality, 4);
assertEquals(item.sellIn, 1);
}
}

View File

@ -0,0 +1,20 @@
package com.gildedrose.types;
import static org.junit.jupiter.api.Assertions.assertEquals;
import org.junit.jupiter.api.Test;
import com.gildedrose.Item;
public class OthersTest {
@Test
public void testOthersUpdateQuality() {
Item item = new Item("Other item", 2, 3);
Others others = new Others();
others.updateQuality(item);
assertEquals(item.quality, 2);
assertEquals(item.sellIn, 1);
}
}

View File

@ -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 SulfurasTest {
@Test
public void testSulfurasUpdateQuality() {
Item item = new Item(ProductType.SULFURAS.name(), -1, 80);
Sulfuras sulfuras = new Sulfuras();
sulfuras.updateQuality(item);
assertEquals(item.quality, 80);
assertEquals(item.sellIn, -1);
}
}