Add unit tests for limits of quality

This commit is contained in:
Ovi Trif 2018-10-05 21:41:11 +02:00
parent 75cf07cf6d
commit 72d6926f8a

View File

@ -1,7 +1,6 @@
package com.gildedrose package com.gildedrose
import com.gildedrose.core.TestUtils import com.gildedrose.core.TestUtils
import com.gildedrose.core.TestUtils.generateRandomName
import com.gildedrose.core.TestUtils.generateRandomNumber import com.gildedrose.core.TestUtils.generateRandomNumber
import com.gildedrose.core.TestUtils.pickRandomItem import com.gildedrose.core.TestUtils.pickRandomItem
import com.gildedrose.core.advanceTimeBy import com.gildedrose.core.advanceTimeBy
@ -11,15 +10,36 @@ import org.junit.Test
class QualityTest { class QualityTest {
private lateinit var store: Array<Item> private lateinit var store: List<Item>
@Before @Before
fun setUp() { fun setUp() {
store = TestUtils.fixture store = TestUtils.fixture.toList()
} }
@Test @Test
fun name() { fun givenKnownItemExcepSulfuras_afterAnyNumberOfDays_shouldHaveQualityGreaterThanOrEqualToZero() {
throw UnsupportedOperationException() 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)
}
} }
} }