From b8badc7ed9e9ce99de9c013957e436bc65bd309a Mon Sep 17 00:00:00 2001 From: Eric Jan Malotaux Date: Tue, 26 Apr 2022 23:58:05 +0200 Subject: [PATCH] Once the sell by date has passed, Quality degrades twice as fast --- .../test/kotlin/com/gildedrose/GildedRoseTest.kt | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/Kotlin/src/test/kotlin/com/gildedrose/GildedRoseTest.kt b/Kotlin/src/test/kotlin/com/gildedrose/GildedRoseTest.kt index fcd69e80..4bd74c6b 100644 --- a/Kotlin/src/test/kotlin/com/gildedrose/GildedRoseTest.kt +++ b/Kotlin/src/test/kotlin/com/gildedrose/GildedRoseTest.kt @@ -39,7 +39,7 @@ internal class GildedRoseTest { @Test fun qualityIsNeverNegative() { - (1..100).forEach { + (items.map { it.sellIn }.maxOrNull()!! downTo -3).forEach { gildedRose.updateQuality() items.forEach { assertTrue(it.quality >= 0, "The quality of an item is never negative") @@ -69,6 +69,19 @@ internal class GildedRoseTest { assertEquals(0, elixir.quality) } + @Test + fun afterSellByDateHasPassedQualityDecreasesTwiceAsFase() { + val elixir = gildedRose.items.first { it.name.startsWith("Elixir") } + while (elixir.sellIn > 0) { + val quality = elixir.quality + gildedRose.updateQuality() + assertEquals(quality - 1, elixir.quality) + } + val quality = elixir.quality + gildedRose.updateQuality() + assertEquals(quality - 2, elixir.quality) + } + @Test fun agedBrieIncreasesInQuality() { items.first { it.name == "Aged Brie" }.also { agedBrie ->