From 0c8aa134b826a6c51a5f41e2352f857372f689bb Mon Sep 17 00:00:00 2001 From: Ibrahim Dogrusoz Date: Sun, 28 May 2023 16:39:19 +0200 Subject: [PATCH] An Item's quality can not be set to less than the minimum --- .../main/java/com/gildedrose/model/BaseItem.java | 3 ++- .../java/com/gildedrose/model/BaseItemTest.java | 13 +++++++++++++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/Java/src/main/java/com/gildedrose/model/BaseItem.java b/Java/src/main/java/com/gildedrose/model/BaseItem.java index 0ca5b7dd..c024487c 100644 --- a/Java/src/main/java/com/gildedrose/model/BaseItem.java +++ b/Java/src/main/java/com/gildedrose/model/BaseItem.java @@ -4,6 +4,7 @@ import com.gildedrose.Item; public class BaseItem { private final Item item; + private final static int MIN_QUALITY = 0; public BaseItem(Item item) { this.item = item; } @@ -30,7 +31,7 @@ public class BaseItem { } public void setQuality(int quality) { - item.quality = quality; + item.quality = Math.max(quality, MIN_QUALITY); } private void updateQuality() { diff --git a/Java/src/test/java/com/gildedrose/model/BaseItemTest.java b/Java/src/test/java/com/gildedrose/model/BaseItemTest.java index ad7c0581..fb0c7d3b 100644 --- a/Java/src/test/java/com/gildedrose/model/BaseItemTest.java +++ b/Java/src/test/java/com/gildedrose/model/BaseItemTest.java @@ -58,5 +58,18 @@ class BaseItemTest { testItem.update(); assertEquals(8, testItem.getQuality()); } + @Test + void givenABaseItemWithZeroQuality_whenUpdated_thenQualityIsNeverNegative() { + BaseItem testItem = new BaseItem(new Item("test_item", 0, 0)); + testItem.update(); + assertEquals(0, testItem.getQuality()); + } + + @Test + void givenAnExpiredBaseItemWithQualityOne_whenUpdated_thenQualityIsNeverNegative() { + BaseItem testItem = new BaseItem(new Item("test_item", -1, 1)); + testItem.update(); + assertEquals(0, testItem.getQuality()); + } }