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) val expectedQuality = (initialItemQuality - days * 2).coerceAtLeast(0)
assertThat(item.quality).isEqualTo(expectedQuality) 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 SPECS
LOGIC LOGIC
# - sellIn decreases every day # - sellIn decreases every day
- Item.quality # - Item.quality
# - is >= 0 && <= 50 # - is >= 0 && <= 50
# - decrements with number of days until sellIn is 0 then with the double of it # - decrements with number of days until sellIn is 0 then with the double of it
- Sulfuras # - Sulfuras
# sellIn = 0 // doesnt change # sellIn = 0 // doesnt change
# quality is 80 and does not decrease # quality is 80 and does not decrease
- AgedBrie increases in quality # - AgedBrie increases in quality
- BackstagePasses - BackstagePasses
increases in quality like AgedBrie increases in quality like AgedBrie
sellIn <= 0 - quality = 0 sellIn <= 0 - quality = 0