mirror of
https://github.com/emilybache/GildedRose-Refactoring-Kata.git
synced 2026-02-15 22:41:30 +00:00
Add unit tests for quality of Backstage Passes
This commit is contained in:
parent
02df1d974c
commit
88ba474b7f
@ -74,7 +74,7 @@ class QualityTest {
|
|||||||
store = store.excludeSulfuras()
|
store = store.excludeSulfuras()
|
||||||
.excludeBackstagePasses()
|
.excludeBackstagePasses()
|
||||||
.excludeAgedBrie()
|
.excludeAgedBrie()
|
||||||
val sellIn = (-99 until 0).shuffled().last()
|
val sellIn = (-generateRandomNumber() until 0).shuffled().last()
|
||||||
val days = (0 until 100).shuffled().last()
|
val days = (0 until 100).shuffled().last()
|
||||||
val item = pickRandomItem(store).copy(sellIn = sellIn)
|
val item = pickRandomItem(store).copy(sellIn = sellIn)
|
||||||
val initialItemQuality = item.quality
|
val initialItemQuality = item.quality
|
||||||
@ -89,8 +89,8 @@ class QualityTest {
|
|||||||
@Test
|
@Test
|
||||||
fun givenAgedBrie_afterAnyNumberOfDays_shouldIncreaseQualityByNumberOfDays() {
|
fun givenAgedBrie_afterAnyNumberOfDays_shouldIncreaseQualityByNumberOfDays() {
|
||||||
val days = generateRandomNumber()
|
val days = generateRandomNumber()
|
||||||
val item = Item("Aged Brie", generateRandomNumber(), (0..50).shuffled().last())
|
val initialItemQuality = (0..50).shuffled().last()
|
||||||
val initialItemQuality = item.quality
|
val item = Item("Aged Brie", generateRandomNumber(), initialItemQuality)
|
||||||
val app = GildedRose(arrayOf(item))
|
val app = GildedRose(arrayOf(item))
|
||||||
|
|
||||||
app.advanceTimeBy(days)
|
app.advanceTimeBy(days)
|
||||||
@ -100,15 +100,60 @@ class QualityTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun givenBackstagePass_afterAnyNumberOfDays_shouldIncreaseQualityByNumberOfDays() {
|
fun givenBackstagePass_whenSellInNegativeOrZero_shouldSetQualityToZero() {
|
||||||
val days = generateRandomNumber()
|
val days = generateRandomNumber()
|
||||||
val item = Item("Backstage passes to a TAFKAL80ETC concert", generateRandomNumber(), (0..50).shuffled().last())
|
val sellIn = (-generateRandomNumber()..0).shuffled().last()
|
||||||
val initialItemQuality = item.quality
|
val item = Item("Backstage passes to a TAFKAL80ETC concert", sellIn, (0..50).shuffled().last())
|
||||||
val app = GildedRose(arrayOf(item))
|
val app = GildedRose(arrayOf(item))
|
||||||
|
|
||||||
app.advanceTimeBy(days)
|
app.advanceTimeBy(days)
|
||||||
|
|
||||||
val expectedQuality = (initialItemQuality + days).coerceAtMost(50)
|
assertThat(item.quality).isZero()
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun givenBackstagePass_whenSellInMoreThanZeroAndLessThanSix_shouldIncreaseQualityByNumberOfDaysMultipliedByThree() {
|
||||||
|
val sellIn = (1 until 6).shuffled().last()
|
||||||
|
val days = sellIn - 1
|
||||||
|
val initialItemQuality = (0..50).shuffled().last()
|
||||||
|
val item = Item("Backstage passes to a TAFKAL80ETC concert", sellIn, initialItemQuality)
|
||||||
|
val app = GildedRose(arrayOf(item))
|
||||||
|
|
||||||
|
app.advanceTimeBy(days)
|
||||||
|
|
||||||
|
val expectedQuality = (initialItemQuality + days * 3).coerceAtMost(50)
|
||||||
assertThat(item.quality).isEqualTo(expectedQuality)
|
assertThat(item.quality).isEqualTo(expectedQuality)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun givenBackstagePass_whenSellInMoreThanFiveAndLessThanEleven_shouldIncreaseQualityByNumberOfDaysMultipliedByTwo() {
|
||||||
|
(6 until 11).shuffled().forEach {
|
||||||
|
val sellIn = it
|
||||||
|
val days = sellIn - 6
|
||||||
|
val initialItemQuality = (0..50).shuffled().last()
|
||||||
|
val item = Item("Backstage passes to a TAFKAL80ETC concert", sellIn, initialItemQuality)
|
||||||
|
val app = GildedRose(arrayOf(item))
|
||||||
|
|
||||||
|
app.advanceTimeBy(days)
|
||||||
|
|
||||||
|
val expectedQuality = (initialItemQuality + days * 2).coerceAtMost(50)
|
||||||
|
assertThat(item.quality).isEqualTo(expectedQuality)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun givenBackstagePass_whenSellInMoreThanEleven_shouldIncreaseQualityByNumberOfDays() {
|
||||||
|
(11..999).shuffled().forEach {
|
||||||
|
val sellIn = it
|
||||||
|
val days = sellIn - 11
|
||||||
|
val initialItemQuality = (0..50).shuffled().last()
|
||||||
|
val item = Item("Backstage passes to a TAFKAL80ETC concert", sellIn, initialItemQuality)
|
||||||
|
val app = GildedRose(arrayOf(item))
|
||||||
|
|
||||||
|
app.advanceTimeBy(days)
|
||||||
|
|
||||||
|
val expectedQuality = (initialItemQuality + days).coerceAtMost(50)
|
||||||
|
assertThat(item.quality).isEqualTo(expectedQuality)
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user