From 01718e904e3afcfb8e61be2ba971817146844f7d Mon Sep 17 00:00:00 2001 From: pierre Date: Sat, 18 Feb 2023 17:00:51 +0100 Subject: [PATCH] feat: adding testing for incoming features --- .../main/java/com/gildedrose/GildedRose.java | 6 +- .../java/com/gildedrose/ConjuredItems.java | 21 +++ .../java/com/gildedrose/GildedRoseTest.java | 170 ------------------ .../com/gildedrose/UpdateQualityTest.java | 143 +++++++++++++++ .../com/gildedrose/updateQuantitiesTest.java | 65 +++++++ 5 files changed, 234 insertions(+), 171 deletions(-) create mode 100644 Java/src/test/java/com/gildedrose/ConjuredItems.java create mode 100644 Java/src/test/java/com/gildedrose/UpdateQualityTest.java create mode 100644 Java/src/test/java/com/gildedrose/updateQuantitiesTest.java diff --git a/Java/src/main/java/com/gildedrose/GildedRose.java b/Java/src/main/java/com/gildedrose/GildedRose.java index e6feb751..22c0e4a5 100644 --- a/Java/src/main/java/com/gildedrose/GildedRose.java +++ b/Java/src/main/java/com/gildedrose/GildedRose.java @@ -59,4 +59,8 @@ class GildedRose { } } } -} \ No newline at end of file + + public void updateQuantities(){ + + } +} diff --git a/Java/src/test/java/com/gildedrose/ConjuredItems.java b/Java/src/test/java/com/gildedrose/ConjuredItems.java new file mode 100644 index 00000000..599a34ee --- /dev/null +++ b/Java/src/test/java/com/gildedrose/ConjuredItems.java @@ -0,0 +1,21 @@ + +package com.gildedrose; + +import org.junit.jupiter.api.Test; + +import static org.junit.jupiter.api.Assertions.assertEquals; + + +/** + * Testing for "Conjured" items + */ + +class ConjuredItems { + + @Test + void itemConjuredQualityTwiceAsFastAsNormalItems() { + System.out.println("\"Conjured\" items degrade in Quality twice as fast as normal items"); + } + + +} diff --git a/Java/src/test/java/com/gildedrose/GildedRoseTest.java b/Java/src/test/java/com/gildedrose/GildedRoseTest.java index 7e9800bb..e9e9cb24 100644 --- a/Java/src/test/java/com/gildedrose/GildedRoseTest.java +++ b/Java/src/test/java/com/gildedrose/GildedRoseTest.java @@ -6,175 +6,5 @@ import static org.junit.jupiter.api.Assertions.assertEquals; class GildedRoseTest { - /** - * Set up basic Testing for the initial features and guidelines - */ - - @Test - void itemDaysLeftDecreasesByONeAtEachIteration() { - Item[] items = new Item[]{new Item("Elixir of the Mongoose", 5, 7)}; - GildedRose app = new GildedRose(items); - app.updateQuality(); - assertEquals("Elixir of the Mongoose", app.items[0].name); - System.out.println("Quality: " + app.items[0].sellIn); - assertEquals(4, app.items[0].sellIn); - app.updateQuality(); - assertEquals(3, app.items[0].sellIn); - } - - @Test - void itemQualityLeftDecreasesByOneAtEachIteration() { - Item[] items = new Item[]{new Item("Elixir of the Mongoose", 5, 7)}; - GildedRose app = new GildedRose(items); - app.updateQuality(); - assertEquals("Elixir of the Mongoose", app.items[0].name); - System.out.println("Quality: " + app.items[0].quality); - assertEquals(6, app.items[0].quality); - app.updateQuality(); - assertEquals(5, app.items[0].quality); - } - - @Test - void qualityDegradationSpeedAfterOneIterationWhenOutdated() { - System.out.println("Once the sell by date has passed, Quality degrades twice as fast"); - Item[] items = new Item[]{new Item("+5 Dexterity Vest", 0, 20)}; - GildedRose app = new GildedRose(items); - app.updateQuality(); - System.out.println("Quality: " + app.items[0].quality); - assertEquals(18, app.items[0].quality); - assertEquals("+5 Dexterity Vest", app.items[0].name); - } - - @Test - void qualityIteNeverNegatif() { - System.out.println("The Quality of an item is never negative"); - Item[] items = new Item[]{new Item("+5 Dexterity Vest", 10, 1)}; - GildedRose app = new GildedRose(items); - app.updateQuality(); - app.updateQuality(); - System.out.println("Quality: " + app.items[0].quality); - assertEquals(0, app.items[0].quality); - assertEquals("+5 Dexterity Vest", app.items[0].name); - } - - @Test - void agedBrieQualityIncreaseWthIteration() { - System.out.println("\"Aged Brie\" actually increases in Quality the older it gets"); - Item[] items = new Item[]{new Item("Aged Brie", 5, 0)}; - GildedRose app = new GildedRose(items); - app.updateQuality(); - app.updateQuality(); - assertEquals("Aged Brie", app.items[0].name); - System.out.println("Quality: " + app.items[0].quality); - assertEquals(2, app.items[0].quality); - app.updateQuality(); - assertEquals(3, app.items[0].quality); - } - - @Test - void qualityItemNoMore50() { - System.out.println("The Quality of an item is never more than 50"); - Item[] items = new Item[]{new Item("Aged Brie", 10, 49)}; - GildedRose app = new GildedRose(items); - assertEquals("Aged Brie", app.items[0].name); - app.updateQuality(); - System.out.println("Quality: " + app.items[0].quality); - assertEquals(50, app.items[0].quality); - app.updateQuality(); - assertEquals(50, app.items[0].quality); - - } - - @Test - void qualitySulfurasItemNoMore80() { - System.out.println("The \"Sulfuras\"'s Quality is never more than 80"); - Item[] items = new Item[]{new Item("Sulfuras, Hand of Ragnaros", 5, 80)}; - GildedRose app = new GildedRose(items); - assertEquals("Sulfuras, Hand of Ragnaros", app.items[0].name); - app.updateQuality(); - System.out.println("Quality: " + app.items[0].quality); - assertEquals(80, app.items[0].quality); - app.updateQuality(); - assertEquals(80, app.items[0].quality); - } - - - @Test - void itemSulfurasNotDecreasedQuality() { - System.out.println("\"Sulfuras\", being a legendary item, never decreases in Quality"); - Item[] items = new Item[]{new Item("Sulfuras, Hand of Ragnaros", 5, 79)}; - GildedRose app = new GildedRose(items); - assertEquals("Sulfuras, Hand of Ragnaros", app.items[0].name); - for (int i = 0; i < 10; i++) { - app.updateQuality(); - } - assertEquals(79, app.items[0].quality); - } - - @Test - void itemBackstageQualityIncreasesByTwoWhenTenDaysOrLess() { - System.out.println(" Quality increases by 2 when there are 10 days or less"); - Item[] items = new Item[]{ - new Item("Backstage passes to a TAFKAL80ETC concert", 10, 0), - new Item("Backstage passes to a TAFKAL80ETC concert", 9, 0), - new Item("Backstage passes to a TAFKAL80ETC concert", 8, 0) - }; - GildedRose app = new GildedRose(items); - app.updateQuality(); - for (int i = 0; i < 2; i++) { - assertEquals(2, app.items[i].quality); - } - } - - @Test - void itemBackstageQualityIncreasesByThreeWhenFiveDaysOrLess() { - System.out.println("Quality increases by 3 when there are 5 days or less"); - Item[] items = new Item[]{ - new Item("Backstage passes to a TAFKAL80ETC concert", 5, 3), - new Item("Backstage passes to a TAFKAL80ETC concert", 4, 3), - new Item("Backstage passes to a TAFKAL80ETC concert", 2, 3) - }; - GildedRose app = new GildedRose(items); - app.updateQuality(); - for (int i = 0; i < 2; i++) { - } - } - - /** - * Testing for "Conjured" items - */ - - - @Test - void itemConjuredQualityTwiceAsFastAsNormalItems() { - System.out.println("\"Conjured\" items degrade in Quality twice as fast as normal items"); - } - - - /** - * Testing for Selling items - */ - - @Test - void itemSold() { - Item[] items = new Item[]{ - new Item("+5 Dexterity Vest", 10, 20), - new Item("Aged Brie", 2, 0) - }; - // not yet implemented in the Class - } - - @Test - void itemSulfurasNotSold() { - System.out.println("\"Sulfuras\", being a legendary item, never has to be sold"); - // not yet implemented in the Class - } - - @Test - void itemBackstageQualityDropsToZeroAfterTheConcert() { - System.out.println("Quality drops to 0 after the concert"); - // not yet implemented in the Class - } - } diff --git a/Java/src/test/java/com/gildedrose/UpdateQualityTest.java b/Java/src/test/java/com/gildedrose/UpdateQualityTest.java new file mode 100644 index 00000000..1baedbcd --- /dev/null +++ b/Java/src/test/java/com/gildedrose/UpdateQualityTest.java @@ -0,0 +1,143 @@ +package com.gildedrose; + +import org.junit.jupiter.api.Test; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +/** + * Set up basic Testing for the initial features and guidelines + */ +class UpdateQualityTest { + + @Test + void itemDaysLeftDecreasesByONeAtEachIteration() { + Item[] items = new Item[]{new Item("Elixir of the Mongoose", 5, 7)}; + GildedRose app = new GildedRose(items); + app.updateQuality(); + assertEquals("Elixir of the Mongoose", app.items[0].name); + System.out.println("Quality: " + app.items[0].sellIn); + assertEquals(4, app.items[0].sellIn); + app.updateQuality(); + assertEquals(3, app.items[0].sellIn); + } + + @Test + void itemQualityLeftDecreasesByOneAtEachIteration() { + Item[] items = new Item[]{new Item("Elixir of the Mongoose", 5, 7)}; + GildedRose app = new GildedRose(items); + app.updateQuality(); + assertEquals("Elixir of the Mongoose", app.items[0].name); + System.out.println("Quality: " + app.items[0].quality); + assertEquals(6, app.items[0].quality); + app.updateQuality(); + assertEquals(5, app.items[0].quality); + } + + @Test + void qualityDegradationSpeedAfterOneIterationWhenOutdated() { + System.out.println("Once the sell by date has passed, Quality degrades twice as fast"); + Item[] items = new Item[]{new Item("+5 Dexterity Vest", 0, 20)}; + GildedRose app = new GildedRose(items); + app.updateQuality(); + System.out.println("Quality: " + app.items[0].quality); + assertEquals(18, app.items[0].quality); + assertEquals("+5 Dexterity Vest", app.items[0].name); + } + + @Test + void qualityIteNeverNegatif() { + System.out.println("The Quality of an item is never negative"); + Item[] items = new Item[]{new Item("+5 Dexterity Vest", 10, 1)}; + GildedRose app = new GildedRose(items); + app.updateQuality(); + app.updateQuality(); + System.out.println("Quality: " + app.items[0].quality); + assertEquals(0, app.items[0].quality); + assertEquals("+5 Dexterity Vest", app.items[0].name); + } + + @Test + void agedBrieQualityIncreaseWthIteration() { + System.out.println("\"Aged Brie\" actually increases in Quality the older it gets"); + Item[] items = new Item[]{new Item("Aged Brie", 5, 0)}; + GildedRose app = new GildedRose(items); + app.updateQuality(); + app.updateQuality(); + assertEquals("Aged Brie", app.items[0].name); + System.out.println("Quality: " + app.items[0].quality); + assertEquals(2, app.items[0].quality); + app.updateQuality(); + assertEquals(3, app.items[0].quality); + } + + @Test + void qualityItemNoMore50() { + System.out.println("The Quality of an item is never more than 50"); + Item[] items = new Item[]{new Item("Aged Brie", 10, 49)}; + GildedRose app = new GildedRose(items); + assertEquals("Aged Brie", app.items[0].name); + app.updateQuality(); + System.out.println("Quality: " + app.items[0].quality); + assertEquals(50, app.items[0].quality); + app.updateQuality(); + assertEquals(50, app.items[0].quality); + + } + + @Test + void qualitySulfurasItemNoMore80() { + System.out.println("The \"Sulfuras\"'s Quality is never more than 80"); + Item[] items = new Item[]{new Item("Sulfuras, Hand of Ragnaros", 5, 80)}; + GildedRose app = new GildedRose(items); + assertEquals("Sulfuras, Hand of Ragnaros", app.items[0].name); + app.updateQuality(); + System.out.println("Quality: " + app.items[0].quality); + assertEquals(80, app.items[0].quality); + app.updateQuality(); + assertEquals(80, app.items[0].quality); + } + + + @Test + void itemSulfurasNotDecreasedQuality() { + System.out.println("\"Sulfuras\", being a legendary item, never decreases in Quality"); + Item[] items = new Item[]{new Item("Sulfuras, Hand of Ragnaros", 5, 79)}; + GildedRose app = new GildedRose(items); + assertEquals("Sulfuras, Hand of Ragnaros", app.items[0].name); + for (int i = 0; i < 10; i++) { + app.updateQuality(); + } + assertEquals(79, app.items[0].quality); + } + + @Test + void itemBackstageQualityIncreasesByTwoWhenTenDaysOrLess() { + System.out.println(" Quality increases by 2 when there are 10 days or less"); + Item[] items = new Item[]{ + new Item("Backstage passes to a TAFKAL80ETC concert", 10, 0), + new Item("Backstage passes to a TAFKAL80ETC concert", 9, 0), + new Item("Backstage passes to a TAFKAL80ETC concert", 8, 0) + }; + GildedRose app = new GildedRose(items); + app.updateQuality(); + for (int i = 0; i < 2; i++) { + assertEquals(2, app.items[i].quality); + } + } + + @Test + void itemBackstageQualityIncreasesByThreeWhenFiveDaysOrLess() { + System.out.println("Quality increases by 3 when there are 5 days or less"); + Item[] items = new Item[]{ + new Item("Backstage passes to a TAFKAL80ETC concert", 5, 3), + new Item("Backstage passes to a TAFKAL80ETC concert", 4, 3), + new Item("Backstage passes to a TAFKAL80ETC concert", 2, 3) + }; + GildedRose app = new GildedRose(items); + app.updateQuality(); + for (int i = 0; i < 2; i++) { + } + } + + +} diff --git a/Java/src/test/java/com/gildedrose/updateQuantitiesTest.java b/Java/src/test/java/com/gildedrose/updateQuantitiesTest.java new file mode 100644 index 00000000..b23fbb16 --- /dev/null +++ b/Java/src/test/java/com/gildedrose/updateQuantitiesTest.java @@ -0,0 +1,65 @@ +package com.gildedrose; + +import org.junit.jupiter.api.Test; + +import static org.junit.jupiter.api.Assertions.assertEquals; + + +/** + * Testing for Selling items + */ + +class updateQuantitiesTest { + @Test + void itemsSoldAfterConcert() { + 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) + }; + GildedRose app = new GildedRose(items); + app.updateQuantities(); +// assertEquals(, app.items.length); + } + + @Test + void itemBackstageQualityDropsToZeroAfterTheConcert() { + System.out.println("Quality drops to 0 after the concert"); + Item[] items = new Item[]{ + new Item("Backstage passes to a TAFKAL80ETC concert", 10, 2), + new Item("Backstage passes to a TAFKAL80ETC concert", 9, 3), + new Item("Backstage passes to a TAFKAL80ETC concert", 8, 7) + }; + GildedRose app = new GildedRose(items); + app.updateQuantities(); + for ( Item el: items) { + assertEquals(0, el.quality); + } + } + + @Test + void itemSulfurasNotSold() { + System.out.println("\"Sulfuras\", being a legendary item, never has to be sold"); + 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) + }; + GildedRose app = new GildedRose(items); + app.updateQuantities(); + assertEquals(2, app.items.length); + } + +} + +