diff --git a/Java/src/main/java/com/gildedrose/GildedRose.java b/Java/src/main/java/com/gildedrose/GildedRose.java index e6feb751..4db14a38 100644 --- a/Java/src/main/java/com/gildedrose/GildedRose.java +++ b/Java/src/main/java/com/gildedrose/GildedRose.java @@ -9,11 +9,23 @@ class GildedRose { public void updateQuality() { for (int i = 0; i < items.length; i++) { + if(isUnknown(items[i].name)){ + + if (items[i].quality > 0) { + items[i].quality = items[i].quality - 1; + } + + if (items[i].sellIn < 0 && items[i].quality > 0) { + items[i].quality = items[i].quality - 1; + } + } + + if (!items[i].name.equals("Aged Brie") && !items[i].name.equals("Backstage passes to a TAFKAL80ETC concert")) { if (items[i].quality > 0) { if (!items[i].name.equals("Sulfuras, Hand of Ragnaros")) { - items[i].quality = items[i].quality - 1; + //items[i].quality = items[i].quality - 1; } } } else { @@ -45,7 +57,7 @@ class GildedRose { if (!items[i].name.equals("Backstage passes to a TAFKAL80ETC concert")) { if (items[i].quality > 0) { if (!items[i].name.equals("Sulfuras, Hand of Ragnaros")) { - items[i].quality = items[i].quality - 1; + // items[i].quality = items[i].quality - 1; } } } else { @@ -59,4 +71,10 @@ class GildedRose { } } } + + private boolean isUnknown(String name) { + return !name.equals("Aged Brie") + && !name.equals("Backstage passes to a TAFKAL80ETC concert") + && !name.equals("Sulfuras, Hand of Ragnaros"); + } } \ No newline at end of file diff --git a/Java/src/test/java/com/gildedrose/GildedRoseShould.java b/Java/src/test/java/com/gildedrose/GildedRoseShould.java index d7777a09..456718f8 100644 --- a/Java/src/test/java/com/gildedrose/GildedRoseShould.java +++ b/Java/src/test/java/com/gildedrose/GildedRoseShould.java @@ -9,30 +9,11 @@ import static org.junit.jupiter.api.Assertions.assertTrue; class GildedRoseShould { - @Test - void when_item_name_is_not_AgedBrie_and_not_Backstage_and_not_Sulfuras_and_quality_is_0_then_should_decrease_sellIn_and_maintains_quality() { - Item[] items = {new Item("NOT Sulfuras, Hand of Ragnaros", 10, 0)}; - GildedRose gildedRose = new GildedRose(items); - - gildedRose.updateQuality(); - - assertEquals(9, gildedRose.items[0].sellIn); - assertEquals(0, gildedRose.items[0].quality); - } + // unknown CHECK + // sulfuras @Test - void when_item_name_is_not_AgedBrie_and_not_Backstage_and_not_Sulfuras_and_quality_is_greather_than_0_then_should_decrease_quality_and_sellIn_in_1() { - Item[] items = {new Item("NOT Sulfuras, Hand of Ragnaros", 10, 10)}; - GildedRose gildedRose = new GildedRose(items); - - gildedRose.updateQuality(); - - assertEquals(9, gildedRose.items[0].sellIn); - assertEquals(9, gildedRose.items[0].quality); - } - - @Test - void when_item_name_is_AgedBrie_and_quality_is_less_than_50_then_should_decrease_sellIn_and_increase_quality_in_1() { + void when_item_name_is_AgedBrie_and_quality_is_lt_50_then_should_decrease_sellIn_and_increase_quality_in_1() { Item[] items = {new Item("Aged Brie", 10, 40)}; GildedRose gildedRose = new GildedRose(items); @@ -43,7 +24,7 @@ class GildedRoseShould { } @Test - void when_item_is_Backstage_and_sellIn_is_less_than_6_and_quality_is_less_than_48_then_should_increase_in_3_quality_and_decrease_sellIn_in_1() { + void when_item_is_Backstage_and_sellIn_is_lt_6_and_quality_is_lt_48_then_should_increase_in_3_quality_and_decrease_sellIn_in_1() { Item[] items = {new Item("Backstage passes to a TAFKAL80ETC concert", 5, 47)}; GildedRose gildedRose = new GildedRose(items); @@ -54,7 +35,7 @@ class GildedRoseShould { } @Test - void when_item_is_AgedBrie_and_quality_is_less_than_49_and_sellin_is_less_than_0_then_quality_should_increase_in_1_and_decrease_sellIn_in_1(){ + void when_item_is_AgedBrie_and_quality_is_lt_49_and_sellin_is_lt_0_then_quality_should_increase_in_1_and_decrease_sellIn_in_1(){ Item [] items = {new Item("Aged Brie",-1, 48)}; GildedRose gildedRose = new GildedRose(items); @@ -67,7 +48,7 @@ class GildedRoseShould { } @Test - void when_item_is_Backstage_and_sellIn_is_less_than_0_then_quality_should_be_set_in_0_and_decreases_sellIn_in_1(){ + void when_item_is_Backstage_and_sellIn_is_lt_0_then_quality_should_be_set_in_0_and_decreases_sellIn_in_1(){ Item [] items = {new Item("Backstage passes to a TAFKAL80ETC concert",-1,999)}; GildedRose gildedRose = new GildedRose(items); @@ -78,8 +59,33 @@ class GildedRoseShould { assertEquals(-2, gildedRose.items[0].sellIn); } + + + // unknown CHECK @Test - void when_item_is_unknown_and_quality_is_more_than_0_then_should_decrease_quality_in_2_and_decrease_sellIn_in_1(){ + void when_item_name_is_unknown_and_quality_is_lt_0_and_sellin_is_gt_0_then_should_maintains_quality_and_decrease_sellin_1() { + Item[] items = {new Item("Another Different Item", 10, -1)}; + GildedRose gildedRose = new GildedRose(items); + + gildedRose.updateQuality(); + + assertEquals(9, gildedRose.items[0].sellIn); + assertEquals(-1, gildedRose.items[0].quality); + } + + @Test + void when_item_name_is_unknown_and_quality_is_gt_0_and_sellin_is_gt_0_then_should_decrease_quality_in_1_and_sellIn_in_1() { + Item[] items = {new Item("Another Different Item", 10, 10)}; + GildedRose gildedRose = new GildedRose(items); + + gildedRose.updateQuality(); + + assertEquals(9, gildedRose.items[0].sellIn); + assertEquals(9, gildedRose.items[0].quality); + } + + @Test + void when_item_is_unknown_and_quality_is_gt_0_and_sellin_is_lt_0__then_should_decrease_quality_in_2_and_decrease_sellIn_in_1(){ Item [] items = new Item[]{new Item("Another Different Item", -1, 999)}; GildedRose gildedRose = new GildedRose(items); @@ -90,4 +96,5 @@ class GildedRoseShould { assertEquals(-2, gildedRose.items[0].sellIn); } + }