Add unit tests for quality of Aged Brie

This commit is contained in:
Ovi Trif 2018-10-05 23:23:45 +02:00
parent 7db88cf003
commit 02df1d974c
2 changed files with 29 additions and 3 deletions

View File

@ -85,4 +85,30 @@ class QualityTest {
val expectedQuality = (initialItemQuality - days * 2).coerceAtLeast(0)
assertThat(item.quality).isEqualTo(expectedQuality)
}
@Test
fun givenAgedBrie_afterAnyNumberOfDays_shouldIncreaseQualityByNumberOfDays() {
val days = generateRandomNumber()
val item = Item("Aged Brie", generateRandomNumber(), (0..50).shuffled().last())
val initialItemQuality = item.quality
val app = GildedRose(arrayOf(item))
app.advanceTimeBy(days)
val expectedQuality = (initialItemQuality + days).coerceAtMost(50)
assertThat(item.quality).isEqualTo(expectedQuality)
}
@Test
fun givenBackstagePass_afterAnyNumberOfDays_shouldIncreaseQualityByNumberOfDays() {
val days = generateRandomNumber()
val item = Item("Backstage passes to a TAFKAL80ETC concert", generateRandomNumber(), (0..50).shuffled().last())
val initialItemQuality = item.quality
val app = GildedRose(arrayOf(item))
app.advanceTimeBy(days)
val expectedQuality = (initialItemQuality + days).coerceAtMost(50)
assertThat(item.quality).isEqualTo(expectedQuality)
}
}

View File

@ -1,13 +1,13 @@
SPECS
LOGIC
# - sellIn decreases every day
- Item.quality
# - Item.quality
# - is >= 0 && <= 50
# - decrements with number of days until sellIn is 0 then with the double of it
- Sulfuras
# - Sulfuras
# sellIn = 0 // doesnt change
# quality is 80 and does not decrease
- AgedBrie increases in quality
# - AgedBrie increases in quality
- BackstagePasses
increases in quality like AgedBrie
sellIn <= 0 - quality = 0