From e2c4df0d5c91cf7d7000fce2edf5833369f9bfcc Mon Sep 17 00:00:00 2001 From: Ibrahim Dogrusoz Date: Sun, 28 May 2023 15:55:50 +0200 Subject: [PATCH] Test that existing code meets the requirements --- .../java/com/gildedrose/GildedRoseTest.java | 91 ++++++++++++++++++- .../java/com/gildedrose/TexttestFixture.java | 22 ++--- 2 files changed, 99 insertions(+), 14 deletions(-) diff --git a/Java/src/test/java/com/gildedrose/GildedRoseTest.java b/Java/src/test/java/com/gildedrose/GildedRoseTest.java index 8ae29eec..e1adebd2 100644 --- a/Java/src/test/java/com/gildedrose/GildedRoseTest.java +++ b/Java/src/test/java/com/gildedrose/GildedRoseTest.java @@ -7,11 +7,98 @@ import static org.junit.jupiter.api.Assertions.assertEquals; class GildedRoseTest { @Test - void foo() { + void givenItem_whenUpdated_thenSellInDecrements() { Item[] items = new Item[] { new Item("foo", 0, 0) }; GildedRose app = new GildedRose(items); app.updateQuality(); - assertEquals("fixme", app.items[0].name); + assertEquals(-1, app.items[0].sellIn); } + @Test + void givenItem_whenUpdated_thenQualityDecrements() { + Item[] items = new Item[] { new Item("foo", 10, 10) }; + GildedRose app = new GildedRose(items); + app.updateQuality(); + assertEquals(9, app.items[0].quality); + } + + @Test + void givenExpiredItem_whenUpdated_thenQualityDecrementsByTwo() { + Item[] items = new Item[] { new Item("foo", 0, 10) }; + GildedRose app = new GildedRose(items); + app.updateQuality(); + assertEquals(8, app.items[0].quality); + } + + @Test + void givenItemWithZeroQuality_whenUpdated_thenQualityIsNeverNegative() { + Item[] items = new Item[] { new Item("foo", 0, 0) }; + GildedRose app = new GildedRose(items); + app.updateQuality(); + assertEquals(0, app.items[0].quality); + } + + @Test + void givenAgedBrie_whenUpdated_thenQualityIncrements() { + Item[] items = new Item[] { new Item("Aged Brie", 10, 10) }; + GildedRose app = new GildedRose(items); + app.updateQuality(); + assertEquals(11, app.items[0].quality); + } + + @Test + void givenAgedBrieWithQuality50_whenUpdated_thenQualityRemainsTheSame() { + Item[] items = new Item[] { new Item("Aged Brie", 10, 50) }; + GildedRose app = new GildedRose(items); + app.updateQuality(); + assertEquals(50, app.items[0].quality); + } + + @Test + void givenLegendaryItem_whenUpdated_thenSellInStaysTheSame() { + Item[] items = new Item[] { new Item("Sulfuras, Hand of Ragnaros", 0, 80) }; + GildedRose app = new GildedRose(items); + app.updateQuality(); + assertEquals(0, app.items[0].sellIn); + } + + @Test + void givenLegendaryItem_whenUpdated_thenQualityStaysTheSame() { + Item[] items = new Item[] { new Item("Sulfuras, Hand of Ragnaros", 0, 80) }; + GildedRose app = new GildedRose(items); + app.updateQuality(); + assertEquals(80, app.items[0].quality); + } + + @Test + void givenBackstagePasses_whenUpdated_thenQualityIncrements() { + Item[] items = new Item[] { new Item("Backstage passes to a TAFKAL80ETC concert", 20, 10) }; + GildedRose app = new GildedRose(items); + app.updateQuality(); + assertEquals(11, app.items[0].quality); + } + + @Test + void givenBackstagePassesWith10DaysToConcert_whenUpdated_thenQualityIncrementsByTwo() { + Item[] items = new Item[] { new Item("Backstage passes to a TAFKAL80ETC concert", 10, 10) }; + GildedRose app = new GildedRose(items); + app.updateQuality(); + assertEquals(12, app.items[0].quality); + } + + @Test + void givenBackstagePassesWith5DaysToConcert_whenUpdated_thenQualityIncrementsByThree() { + Item[] items = new Item[] { new Item("Backstage passes to a TAFKAL80ETC concert", 5, 10) }; + GildedRose app = new GildedRose(items); + app.updateQuality(); + assertEquals(13, app.items[0].quality); + } + + @Test + void givenBackstagePassesAfterTheConcert_whenUpdated_thenQualityIsZero() { + Item[] items = new Item[] { new Item("Backstage passes to a TAFKAL80ETC concert", 0, 10) }; + GildedRose app = new GildedRose(items); + app.updateQuality(); + assertEquals(0, app.items[0].quality); + } } diff --git a/Java/src/test/java/com/gildedrose/TexttestFixture.java b/Java/src/test/java/com/gildedrose/TexttestFixture.java index d059c88f..c78e15f5 100644 --- a/Java/src/test/java/com/gildedrose/TexttestFixture.java +++ b/Java/src/test/java/com/gildedrose/TexttestFixture.java @@ -2,19 +2,17 @@ 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) }; + 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);