From 02df1d974cf83667ab0caff0b1aee1f6e5c43b74 Mon Sep 17 00:00:00 2001 From: Ovi Trif Date: Fri, 5 Oct 2018 23:23:45 +0200 Subject: [PATCH] Add unit tests for quality of Aged Brie --- src/test/kotlin/com/gildedrose/QualityTest.kt | 26 +++++++++++++++++++ texttest/specs.txt | 6 ++--- 2 files changed, 29 insertions(+), 3 deletions(-) diff --git a/src/test/kotlin/com/gildedrose/QualityTest.kt b/src/test/kotlin/com/gildedrose/QualityTest.kt index 8453c9ff..d79b76de 100644 --- a/src/test/kotlin/com/gildedrose/QualityTest.kt +++ b/src/test/kotlin/com/gildedrose/QualityTest.kt @@ -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) + } } diff --git a/texttest/specs.txt b/texttest/specs.txt index 2eba86aa..679d77d4 100644 --- a/texttest/specs.txt +++ b/texttest/specs.txt @@ -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