Separate utilities from tests

This commit is contained in:
Ovi Trif 2018-10-05 21:23:58 +02:00
parent d187e00d1f
commit 930bc1d32f
3 changed files with 19 additions and 11 deletions

View File

@ -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)]
}

View File

@ -0,0 +1,5 @@
package com.gildedrose.core
import com.gildedrose.GildedRose
fun GildedRose.advanceTimeBy(days: Int) = repeat(days, { this.updateQuality() })

View File

@ -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<Item>) = items[generateRandomNumber().coerceIn(items.indices)]
}