diff --git a/src/test/kotlin/com/gildedrose/QualityTest.kt b/src/test/kotlin/com/gildedrose/QualityTest.kt index af806a2f..93738bef 100644 --- a/src/test/kotlin/com/gildedrose/QualityTest.kt +++ b/src/test/kotlin/com/gildedrose/QualityTest.kt @@ -1,7 +1,6 @@ package com.gildedrose import com.gildedrose.core.TestUtils -import com.gildedrose.core.TestUtils.generateRandomName import com.gildedrose.core.TestUtils.generateRandomNumber import com.gildedrose.core.TestUtils.pickRandomItem import com.gildedrose.core.advanceTimeBy @@ -11,15 +10,36 @@ import org.junit.Test class QualityTest { - private lateinit var store: Array + private lateinit var store: List @Before fun setUp() { - store = TestUtils.fixture + store = TestUtils.fixture.toList() } @Test - fun name() { - throw UnsupportedOperationException() + fun givenKnownItemExcepSulfuras_afterAnyNumberOfDays_shouldHaveQualityGreaterThanOrEqualToZero() { + val days = generateRandomNumber() + store = store.filter { it.name != "Sulfuras, Hand of Ragnaros" } + val app = GildedRose(store.toTypedArray()) + + app.advanceTimeBy(days) + + store.forEach {item -> + assertThat(item.quality).isGreaterThanOrEqualTo(0) + } + } + + @Test + fun givenKnownItemExcepSulfuras_afterAnyNumberOfDays_shouldHaveQualityLessThanOrEqualToFifty() { + val days = generateRandomNumber() + store = store.filter { it.name != "Sulfuras, Hand of Ragnaros" } + val app = GildedRose(store.toTypedArray()) + + app.advanceTimeBy(days) + + store.forEach {item -> + assertThat(item.quality).isLessThanOrEqualTo(50) + } } }