diff --git a/Java/src/main/java/com/gildedrose/behavior/quality/ImmutableQualityBehavior.java b/Java/src/main/java/com/gildedrose/behavior/quality/ImmutableQualityBehavior.java new file mode 100644 index 00000000..3bff2685 --- /dev/null +++ b/Java/src/main/java/com/gildedrose/behavior/quality/ImmutableQualityBehavior.java @@ -0,0 +1,16 @@ +package com.gildedrose.behavior.quality; + +import com.gildedrose.Item; + +public class ImmutableQualityBehavior implements QualityBehavior { + + public static ImmutableQualityBehavior newInstance() { + return new ImmutableQualityBehavior(); + } + + @Override + public void processQualityUpdate(Item item) { + + } + +} diff --git a/Java/src/test/java/com/gildedrose/behavior/quality/ImmutableQualityBehaviorTest.java b/Java/src/test/java/com/gildedrose/behavior/quality/ImmutableQualityBehaviorTest.java new file mode 100644 index 00000000..10d75ed2 --- /dev/null +++ b/Java/src/test/java/com/gildedrose/behavior/quality/ImmutableQualityBehaviorTest.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 ImmutableQualityBehaviorTest { + + private QualityBehavior qualityBehavior; + + @BeforeEach + public void setUp() throws Exception { + qualityBehavior = new ImmutableQualityBehavior(); + } + + @Test + void immutableQuality() { + Item item = getItem(10); + qualityBehavior.processQualityUpdate(item); + + assertEquals(10, item.quality); + } + + @Test + void immutableQualityZero() { + Item item = getItem(0); + qualityBehavior.processQualityUpdate(item); + + assertEquals(0, item.quality); + } + + @Test + void immutableQualityNegative() { + Item item = getItem(-10); + qualityBehavior.processQualityUpdate(item); + + assertEquals(-10, item.quality); + } + + private Item getItem(int quality) { + return new Item("SomeItem", 0, quality); + } +}