From 774cc1720bd652efd91cd1c8b6d0cfda81661392 Mon Sep 17 00:00:00 2001 From: Alvaro Gomez Traveso Date: Fri, 16 Dec 2022 11:41:49 +0100 Subject: [PATCH] Create class for normal items --- .../java/com/gildedrose/items/NormalItem.java | 20 ++++++++++++++++ .../com/gildedrose/items/NormalItemTest.java | 24 +++++++++++++++++++ 2 files changed, 44 insertions(+) create mode 100644 Java/src/main/java/com/gildedrose/items/NormalItem.java create mode 100644 Java/src/test/java/com/gildedrose/items/NormalItemTest.java diff --git a/Java/src/main/java/com/gildedrose/items/NormalItem.java b/Java/src/main/java/com/gildedrose/items/NormalItem.java new file mode 100644 index 00000000..bc7f1dc3 --- /dev/null +++ b/Java/src/main/java/com/gildedrose/items/NormalItem.java @@ -0,0 +1,20 @@ +package com.gildedrose.items; + +import com.gildedrose.Quality; +import com.gildedrose.SellIn; +import lombok.EqualsAndHashCode; + +@EqualsAndHashCode(callSuper = true) +public class NormalItem extends GildedRoseItem { + + public NormalItem(String name, SellIn sellIn, Quality quality, boolean conjured) { + super(name, sellIn, quality, conjured); + } + + @Override + protected Quality nextQuality(Quality previous) { + Quality nextQuality = previous.copy(); + nextQuality.decrement(); + return nextQuality; + } +} diff --git a/Java/src/test/java/com/gildedrose/items/NormalItemTest.java b/Java/src/test/java/com/gildedrose/items/NormalItemTest.java new file mode 100644 index 00000000..c85010ff --- /dev/null +++ b/Java/src/test/java/com/gildedrose/items/NormalItemTest.java @@ -0,0 +1,24 @@ +package com.gildedrose.items; + +import static org.assertj.core.api.Assertions.assertThat; + +import com.gildedrose.Quality; +import com.gildedrose.SellIn; +import org.junit.jupiter.api.Nested; +import org.junit.jupiter.api.Test; + +class NormalItemTest { + + @Nested + class nextQuality { + private final NormalItem item = + new NormalItem("+5 Dexterity Vest", SellIn.create(10), Quality.create(1), Boolean.FALSE); + + @Test + void should_decrement_quality_in_one() { + Quality nextQuality = item.nextQuality(Quality.create(1)); + + assertThat(nextQuality.getValue()).isZero(); + } + } +}