From 936527e4d305eea41dbca10f97e7a49f96cf4d55 Mon Sep 17 00:00:00 2001 From: Atul Anand Date: Mon, 14 Sep 2020 01:19:06 +0530 Subject: [PATCH] Test for Conjured items passed. Feature integrated. Signed-off-by: Atul Anand --- .../main/scala/com/gildedrose/GildedRose.scala | 15 +++++++++++++-- .../scala/com/gildedrose/GildedRoseTest.scala | 7 ++++--- 2 files changed, 17 insertions(+), 5 deletions(-) diff --git a/scala/src/main/scala/com/gildedrose/GildedRose.scala b/scala/src/main/scala/com/gildedrose/GildedRose.scala index cfc5bf56..e5f4adc4 100644 --- a/scala/src/main/scala/com/gildedrose/GildedRose.scala +++ b/scala/src/main/scala/com/gildedrose/GildedRose.scala @@ -5,8 +5,7 @@ class GildedRose(val items: Array[Item]) { def updateQuality() { for (i <- items.indices) { if (isItemNotIncremental(i)) { - if (isQualityPositive(i)) - incrementQuality(i, -1) + incrementQualityForNonIncrementalItems(i) } else incrementQualityForIncrementalItems(i) decrementSellInIfNotSulfuras(i) @@ -15,6 +14,13 @@ class GildedRose(val items: Array[Item]) { } } + private def incrementQualityForNonIncrementalItems(i: Int): Unit = { + if (isQualityPositive(i)) { + incrementQuality(i, -1) + additionalIncrementForConjured(i) + } + } + private def incrementQualityForIncrementalItems(i: Int): Unit = { if (isQualityLessThan50(i)) { incrementQuality(i, 1) @@ -31,6 +37,11 @@ class GildedRose(val items: Array[Item]) { incrementQuality(i, -1) } + private def additionalIncrementForConjured(i: Int): Unit = { + if (isConjured(i)) + incrementQuality(i, -1) + } + private def additionalIncrementForBackstagePasses(i: Int): Unit = { if (isBackstagePass(i)) incrementBackstagePassQuality(i) diff --git a/scala/src/test/scala/com/gildedrose/GildedRoseTest.scala b/scala/src/test/scala/com/gildedrose/GildedRoseTest.scala index 1369386b..f0ac9dcc 100644 --- a/scala/src/test/scala/com/gildedrose/GildedRoseTest.scala +++ b/scala/src/test/scala/com/gildedrose/GildedRoseTest.scala @@ -89,8 +89,8 @@ class GildedRoseTest extends AnyWordSpec with Matchers with BeforeAndAfter { } "quality of Conjured items degrade twice as fast of elixir" in { - val sellIn = 1 - val quality = 30 + val sellIn = 10 + val quality = 10 app = createApp(createItemsWithConjuredAndElixir(sellIn, quality)) verifyQualityForConjuredAgainstElixir(sellIn) } @@ -109,7 +109,8 @@ class GildedRoseTest extends AnyWordSpec with Matchers with BeforeAndAfter { app.updateQuality() val conjuredQualityDrop = prevQualityConjured - app.items(0).quality val elixirQualityDrop = prevQualityElixir - app.items(1).quality - assert(conjuredQualityDrop == 2 * elixirQualityDrop) + if (conjuredQualityDrop != 0) + assert(conjuredQualityDrop == 2 * elixirQualityDrop) } }