From 3bd5d5ffdce58415e71923ad6cc60d6becd63dd1 Mon Sep 17 00:00:00 2001 From: Alvaro Gomez Traveso Date: Fri, 16 Dec 2022 11:42:22 +0100 Subject: [PATCH] Create class for sulfuras items --- .../com/gildedrose/items/SulfurasItem.java | 21 ++++++++++++++++++ .../gildedrose/items/SulfurasItemTest.java | 22 +++++++++++++++++++ 2 files changed, 43 insertions(+) create mode 100644 Java/src/main/java/com/gildedrose/items/SulfurasItem.java create mode 100644 Java/src/test/java/com/gildedrose/items/SulfurasItemTest.java diff --git a/Java/src/main/java/com/gildedrose/items/SulfurasItem.java b/Java/src/main/java/com/gildedrose/items/SulfurasItem.java new file mode 100644 index 00000000..1791f2e4 --- /dev/null +++ b/Java/src/main/java/com/gildedrose/items/SulfurasItem.java @@ -0,0 +1,21 @@ +package com.gildedrose.items; + +import com.gildedrose.Quality; +import com.gildedrose.SellIn; +import lombok.EqualsAndHashCode; + +@EqualsAndHashCode(callSuper = true) +public class SulfurasItem extends GildedRoseItem { + + static final Quality DEFAULT_QUALITY = Quality.create(80); + + public SulfurasItem(SellIn sellIn) { + super("Sulfuras", sellIn, DEFAULT_QUALITY, Boolean.FALSE); + } + + @Override + protected Quality nextQuality(Quality previous) { + // being a legendary item, never has to be sold or decreases in Quality + return previous.copy(); + } +} diff --git a/Java/src/test/java/com/gildedrose/items/SulfurasItemTest.java b/Java/src/test/java/com/gildedrose/items/SulfurasItemTest.java new file mode 100644 index 00000000..94e31053 --- /dev/null +++ b/Java/src/test/java/com/gildedrose/items/SulfurasItemTest.java @@ -0,0 +1,22 @@ +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 SulfurasItemTest { + private final SulfurasItem item = new SulfurasItem(SellIn.create(0)); + + @Nested + class nextQuality { + @Test + void should_never_update_quality() { + Quality nextQuality = item.nextQuality(SulfurasItem.DEFAULT_QUALITY); + + assertThat(nextQuality).isEqualTo(SulfurasItem.DEFAULT_QUALITY); + } + } +}