An Item's quality can not be set to less than the minimum

This commit is contained in:
Ibrahim Dogrusoz 2023-05-28 16:39:19 +02:00
parent 4e9edb7696
commit 0c8aa134b8
2 changed files with 15 additions and 1 deletions

View File

@ -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() {

View File

@ -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());
}
}