diff --git a/Java/src/main/java/com/gildedrose/model/BaseItem.java b/Java/src/main/java/com/gildedrose/model/BaseItem.java index c024487c..8dc51705 100644 --- a/Java/src/main/java/com/gildedrose/model/BaseItem.java +++ b/Java/src/main/java/com/gildedrose/model/BaseItem.java @@ -4,11 +4,22 @@ import com.gildedrose.Item; public class BaseItem { private final Item item; - private final static int MIN_QUALITY = 0; + protected final static int MIN_QUALITY = 0; public BaseItem(Item item) { + validate(item); this.item = item; } + private void validate(Item item) { + if(item.quality < MIN_QUALITY) { + throw new IllegalArgumentException( + "Item has a quality out of accepted boundaries. Minimum acceptable quality is " + + " but received " + + item.quality + ); + } + } + public int getSellIn() { return item.sellIn; } diff --git a/Java/src/test/java/com/gildedrose/model/BaseItemTest.java b/Java/src/test/java/com/gildedrose/model/BaseItemTest.java index fb0c7d3b..3601a82d 100644 --- a/Java/src/test/java/com/gildedrose/model/BaseItemTest.java +++ b/Java/src/test/java/com/gildedrose/model/BaseItemTest.java @@ -72,4 +72,9 @@ class BaseItemTest { assertEquals(0, testItem.getQuality()); } + @Test + void givenAnItemWithLessThanMinimumQuality_whenCreated_thenAnExceptionIsThrown() { + assertThrows(IllegalArgumentException.class, () -> new BaseItem(new Item("test_item", -1, BaseItem.MIN_QUALITY - 1))); + } + }