mirror of
https://github.com/emilybache/GildedRose-Refactoring-Kata.git
synced 2026-02-15 14:31:28 +00:00
Separate utilities from tests
This commit is contained in:
parent
d187e00d1f
commit
930bc1d32f
@ -1,9 +1,13 @@
|
|||||||
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.pickRandomItem
|
||||||
|
import com.gildedrose.core.advanceTimeBy
|
||||||
import org.assertj.core.api.Java6Assertions.assertThat
|
import org.assertj.core.api.Java6Assertions.assertThat
|
||||||
|
import org.junit.Before
|
||||||
import org.junit.Test
|
import org.junit.Test
|
||||||
import java.util.*
|
|
||||||
|
|
||||||
class GildedRoseTest {
|
class GildedRoseTest {
|
||||||
|
|
||||||
@ -30,10 +34,10 @@ class GildedRoseTest {
|
|||||||
fun givenKnownItemExcepSulfuras_afterRandomNumberOfDays_shouldDecreaseSellInByNumberOfDays() {
|
fun givenKnownItemExcepSulfuras_afterRandomNumberOfDays_shouldDecreaseSellInByNumberOfDays() {
|
||||||
val days = generateRandomNumber()
|
val days = generateRandomNumber()
|
||||||
val initialSellIn = generateRandomNumber()
|
val initialSellIn = generateRandomNumber()
|
||||||
var item = pickRandomItem().copy(sellIn = initialSellIn)
|
var item = pickRandomItem(store).copy(sellIn = initialSellIn)
|
||||||
|
|
||||||
while (item.name == "Sulfuras, Hand of Ragnaros") {
|
while (item.name == "Sulfuras, Hand of Ragnaros") {
|
||||||
item = pickRandomItem().copy(sellIn = initialSellIn)
|
item = pickRandomItem(store).copy(sellIn = initialSellIn)
|
||||||
}
|
}
|
||||||
|
|
||||||
val app = GildedRose(arrayOf(item))
|
val app = GildedRose(arrayOf(item))
|
||||||
@ -54,12 +58,4 @@ class GildedRoseTest {
|
|||||||
|
|
||||||
assertThat(item.sellIn).isEqualTo(initialSellIn)
|
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)]
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -0,0 +1,5 @@
|
|||||||
|
package com.gildedrose.core
|
||||||
|
|
||||||
|
import com.gildedrose.GildedRose
|
||||||
|
|
||||||
|
fun GildedRose.advanceTimeBy(days: Int) = repeat(days, { this.updateQuality() })
|
||||||
@ -1,6 +1,7 @@
|
|||||||
package com.gildedrose.core
|
package com.gildedrose.core
|
||||||
|
|
||||||
import com.gildedrose.Item
|
import com.gildedrose.Item
|
||||||
|
import java.util.*
|
||||||
|
|
||||||
object TestUtils {
|
object TestUtils {
|
||||||
|
|
||||||
@ -15,4 +16,10 @@ object TestUtils {
|
|||||||
Item("Backstage passes to a TAFKAL80ETC concert", 10, 49),
|
Item("Backstage passes to a TAFKAL80ETC concert", 10, 49),
|
||||||
Item("Backstage passes to a TAFKAL80ETC concert", 5, 49),
|
Item("Backstage passes to a TAFKAL80ETC concert", 5, 49),
|
||||||
Item("Conjured Mana Cake", 3, 6))
|
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)]
|
||||||
}
|
}
|
||||||
Loading…
Reference in New Issue
Block a user