mirror of
https://github.com/emilybache/GildedRose-Refactoring-Kata.git
synced 2026-02-14 22:21:20 +00:00
Add unit tests for sellIn value
This commit is contained in:
parent
b0614b6bdf
commit
fa253f047d
@ -1,19 +1,38 @@
|
||||
package com.gildedrose
|
||||
|
||||
import org.junit.Assert.*
|
||||
import org.assertj.core.api.Java6Assertions.assertThat
|
||||
import org.junit.Test
|
||||
import java.util.*
|
||||
|
||||
class GildedRoseTest {
|
||||
|
||||
@Test fun foo() {
|
||||
val items = arrayOf<Item>(Item("foo", 0, 0))
|
||||
val app = GildedRose(items)
|
||||
app.updateQuality()
|
||||
assertEquals("fixme", app.items[0].name)
|
||||
@Test
|
||||
fun givenRandomItem_afterRandomNumberOfDays_shouldDecreaseSellInByNumberOfDays() {
|
||||
val days = generateRandomNumber()
|
||||
val initialSellIn = generateRandomNumber()
|
||||
val item = Item(generateRandomName(), initialSellIn, 0)
|
||||
val app = GildedRose(arrayOf(item))
|
||||
|
||||
app.advanceTimeBy(days)
|
||||
|
||||
assertThat(item.sellIn).isEqualTo(initialSellIn-days)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun givenSulfuras_afterRandomNumberOfDays_shouldHaveSameSellIn() {
|
||||
val days = generateRandomNumber()
|
||||
val initialSellIn = generateRandomNumber()
|
||||
val item = Item("Sulfuras, Hand of Ragnaros", initialSellIn, 0)
|
||||
val app = GildedRose(arrayOf(item))
|
||||
|
||||
app.advanceTimeBy(days)
|
||||
|
||||
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()
|
||||
}
|
||||
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user