diff --git a/src/test/kotlin/com/gildedrose/GildedRoseTest.kt b/src/test/kotlin/com/gildedrose/GildedRoseTest.kt index 79b199bd..0780fd5b 100644 --- a/src/test/kotlin/com/gildedrose/GildedRoseTest.kt +++ b/src/test/kotlin/com/gildedrose/GildedRoseTest.kt @@ -1,9 +1,13 @@ 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 import org.assertj.core.api.Java6Assertions.assertThat +import org.junit.Before import org.junit.Test -import java.util.* class GildedRoseTest { @@ -30,10 +34,10 @@ class GildedRoseTest { fun givenKnownItemExcepSulfuras_afterRandomNumberOfDays_shouldDecreaseSellInByNumberOfDays() { val days = generateRandomNumber() val initialSellIn = generateRandomNumber() - var item = pickRandomItem().copy(sellIn = initialSellIn) + var item = pickRandomItem(store).copy(sellIn = initialSellIn) while (item.name == "Sulfuras, Hand of Ragnaros") { - item = pickRandomItem().copy(sellIn = initialSellIn) + item = pickRandomItem(store).copy(sellIn = initialSellIn) } val app = GildedRose(arrayOf(item)) @@ -54,12 +58,4 @@ class GildedRoseTest { assertThat(item.sellIn).isEqualTo(initialSellIn) } - - private fun GildedRose.advanceTimeBy(days: Int) = repeat(days, { this.updateQuality() }) - - private fun generateRandomName() = UUID.randomUUID().toString() - - private fun generateRandomNumber() = (0 until 9999).shuffled().last() - - private fun pickRandomItem() = store[generateRandomNumber().coerceIn(store.indices)] } diff --git a/src/test/kotlin/com/gildedrose/core/GildedRoseExtensions.kt b/src/test/kotlin/com/gildedrose/core/GildedRoseExtensions.kt new file mode 100644 index 00000000..bedde70d --- /dev/null +++ b/src/test/kotlin/com/gildedrose/core/GildedRoseExtensions.kt @@ -0,0 +1,5 @@ +package com.gildedrose.core + +import com.gildedrose.GildedRose + +fun GildedRose.advanceTimeBy(days: Int) = repeat(days, { this.updateQuality() }) diff --git a/src/test/kotlin/com/gildedrose/core/TestUtils.kt b/src/test/kotlin/com/gildedrose/core/TestUtils.kt index 2d967222..3433ba02 100644 --- a/src/test/kotlin/com/gildedrose/core/TestUtils.kt +++ b/src/test/kotlin/com/gildedrose/core/TestUtils.kt @@ -1,6 +1,7 @@ package com.gildedrose.core import com.gildedrose.Item +import java.util.* object TestUtils { @@ -15,4 +16,10 @@ object TestUtils { Item("Backstage passes to a TAFKAL80ETC concert", 10, 49), Item("Backstage passes to a TAFKAL80ETC concert", 5, 49), Item("Conjured Mana Cake", 3, 6)) + + fun generateRandomName() = UUID.randomUUID().toString() + + fun generateRandomNumber() = (0 until 9999).shuffled().last() + + fun pickRandomItem(items: Array) = items[generateRandomNumber().coerceIn(items.indices)] } \ No newline at end of file