Test for Conjured items passed.

Feature integrated.

Signed-off-by: Atul Anand <atulanand206@gmail.com>
This commit is contained in:
Atul Anand 2020-09-14 01:19:06 +05:30
parent 559ac9fb91
commit 936527e4d3
2 changed files with 17 additions and 5 deletions

View File

@ -5,8 +5,7 @@ class GildedRose(val items: Array[Item]) {
def updateQuality() { def updateQuality() {
for (i <- items.indices) { for (i <- items.indices) {
if (isItemNotIncremental(i)) { if (isItemNotIncremental(i)) {
if (isQualityPositive(i)) incrementQualityForNonIncrementalItems(i)
incrementQuality(i, -1)
} else } else
incrementQualityForIncrementalItems(i) incrementQualityForIncrementalItems(i)
decrementSellInIfNotSulfuras(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 = { private def incrementQualityForIncrementalItems(i: Int): Unit = {
if (isQualityLessThan50(i)) { if (isQualityLessThan50(i)) {
incrementQuality(i, 1) incrementQuality(i, 1)
@ -31,6 +37,11 @@ class GildedRose(val items: Array[Item]) {
incrementQuality(i, -1) incrementQuality(i, -1)
} }
private def additionalIncrementForConjured(i: Int): Unit = {
if (isConjured(i))
incrementQuality(i, -1)
}
private def additionalIncrementForBackstagePasses(i: Int): Unit = { private def additionalIncrementForBackstagePasses(i: Int): Unit = {
if (isBackstagePass(i)) if (isBackstagePass(i))
incrementBackstagePassQuality(i) incrementBackstagePassQuality(i)

View File

@ -89,8 +89,8 @@ class GildedRoseTest extends AnyWordSpec with Matchers with BeforeAndAfter {
} }
"quality of Conjured items degrade twice as fast of elixir" in { "quality of Conjured items degrade twice as fast of elixir" in {
val sellIn = 1 val sellIn = 10
val quality = 30 val quality = 10
app = createApp(createItemsWithConjuredAndElixir(sellIn, quality)) app = createApp(createItemsWithConjuredAndElixir(sellIn, quality))
verifyQualityForConjuredAgainstElixir(sellIn) verifyQualityForConjuredAgainstElixir(sellIn)
} }
@ -109,7 +109,8 @@ class GildedRoseTest extends AnyWordSpec with Matchers with BeforeAndAfter {
app.updateQuality() app.updateQuality()
val conjuredQualityDrop = prevQualityConjured - app.items(0).quality val conjuredQualityDrop = prevQualityConjured - app.items(0).quality
val elixirQualityDrop = prevQualityElixir - app.items(1).quality val elixirQualityDrop = prevQualityElixir - app.items(1).quality
assert(conjuredQualityDrop == 2 * elixirQualityDrop) if (conjuredQualityDrop != 0)
assert(conjuredQualityDrop == 2 * elixirQualityDrop)
} }
} }