mirror of
https://github.com/emilybache/GildedRose-Refactoring-Kata.git
synced 2026-02-14 22:21:20 +00:00
Add unit tests for quality of Aged Brie
This commit is contained in:
parent
7db88cf003
commit
02df1d974c
@ -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)
|
||||
}
|
||||
}
|
||||
|
||||
@ -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
|
||||
|
||||
Loading…
Reference in New Issue
Block a user