diff --git a/Java/src/test/java/com/gildedrose/behavior/quality/DefaultQualityBehaviorTest.java b/Java/src/test/java/com/gildedrose/behavior/quality/DefaultQualityBehaviorTest.java new file mode 100644 index 00000000..7708c8c5 --- /dev/null +++ b/Java/src/test/java/com/gildedrose/behavior/quality/DefaultQualityBehaviorTest.java @@ -0,0 +1,45 @@ +package com.gildedrose.behavior.quality; + +import com.gildedrose.Item; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +public class DefaultQualityBehaviorTest { + + private QualityBehavior qualityBehavior; + + @BeforeEach + public void setUp() throws Exception { + qualityBehavior = new DefaultQualityBehavior(); + } + + @Test + void decreaseQuality() { + Item item = getItem(10); + qualityBehavior.processQualityUpdate(item); + + assertEquals(9, item.quality); + } + + @Test + void decreaseNegativeQuality() { + Item item = getItem(-10); + qualityBehavior.processQualityUpdate(item); + + assertEquals(0, item.quality); + } + + @Test + void decreaseQualityZero() { + Item item = getItem(0); + qualityBehavior.processQualityUpdate(item); + + assertEquals(0, item.quality); + } + + private Item getItem(int quality) { + return new Item("SomeItem", 0, quality); + } +}