mirror of
https://github.com/emilybache/GildedRose-Refactoring-Kata.git
synced 2026-02-15 06:21:29 +00:00
Add unit test for sellIn covering known items except sulfuras
This commit is contained in:
parent
fa253f047d
commit
9eedb327ae
@ -6,8 +6,19 @@ import java.util.*
|
|||||||
|
|
||||||
class GildedRoseTest {
|
class GildedRoseTest {
|
||||||
|
|
||||||
|
private val store = arrayOf(
|
||||||
|
Item("+5 Dexterity Vest", 10, 20), //
|
||||||
|
Item("Aged Brie", 2, 0), //
|
||||||
|
Item("Elixir of the Mongoose", 5, 7), //
|
||||||
|
Item("Sulfuras, Hand of Ragnaros", 0, 80), //
|
||||||
|
Item("Sulfuras, Hand of Ragnaros", -1, 80),
|
||||||
|
Item("Backstage passes to a TAFKAL80ETC concert", 15, 20),
|
||||||
|
Item("Backstage passes to a TAFKAL80ETC concert", 10, 49),
|
||||||
|
Item("Backstage passes to a TAFKAL80ETC concert", 5, 49)
|
||||||
|
)
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun givenRandomItem_afterRandomNumberOfDays_shouldDecreaseSellInByNumberOfDays() {
|
fun givenUnknownItem_afterRandomNumberOfDays_shouldDecreaseSellInByNumberOfDays() {
|
||||||
val days = generateRandomNumber()
|
val days = generateRandomNumber()
|
||||||
val initialSellIn = generateRandomNumber()
|
val initialSellIn = generateRandomNumber()
|
||||||
val item = Item(generateRandomName(), initialSellIn, 0)
|
val item = Item(generateRandomName(), initialSellIn, 0)
|
||||||
@ -18,6 +29,23 @@ class GildedRoseTest {
|
|||||||
assertThat(item.sellIn).isEqualTo(initialSellIn - days)
|
assertThat(item.sellIn).isEqualTo(initialSellIn - days)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun givenKnownItemExcepSulfuras_afterRandomNumberOfDays_shouldDecreaseSellInByNumberOfDays() {
|
||||||
|
val days = generateRandomNumber()
|
||||||
|
val initialSellIn = generateRandomNumber()
|
||||||
|
var item = pickRandomItem().copy(sellIn = initialSellIn)
|
||||||
|
|
||||||
|
while (item.name == "Sulfuras, Hand of Ragnaros") {
|
||||||
|
item = pickRandomItem().copy(sellIn = initialSellIn)
|
||||||
|
}
|
||||||
|
|
||||||
|
val app = GildedRose(arrayOf(item))
|
||||||
|
|
||||||
|
app.advanceTimeBy(days)
|
||||||
|
|
||||||
|
assertThat(item.sellIn).isEqualTo(initialSellIn - days)
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun givenSulfuras_afterRandomNumberOfDays_shouldHaveSameSellIn() {
|
fun givenSulfuras_afterRandomNumberOfDays_shouldHaveSameSellIn() {
|
||||||
val days = generateRandomNumber()
|
val days = generateRandomNumber()
|
||||||
@ -35,4 +63,6 @@ class GildedRoseTest {
|
|||||||
private fun generateRandomName() = UUID.randomUUID().toString()
|
private fun generateRandomName() = UUID.randomUUID().toString()
|
||||||
|
|
||||||
private fun generateRandomNumber() = (0 until 9999).shuffled().last()
|
private fun generateRandomNumber() = (0 until 9999).shuffled().last()
|
||||||
|
|
||||||
|
private fun pickRandomItem() = store[generateRandomNumber().coerceIn(store.indices)]
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user