diff --git a/Kotlin/src/main/kotlin/com/gildedrose/GildedRose.kt b/Kotlin/src/main/kotlin/com/gildedrose/GildedRose.kt index 077867b6..ecaccab1 100644 --- a/Kotlin/src/main/kotlin/com/gildedrose/GildedRose.kt +++ b/Kotlin/src/main/kotlin/com/gildedrose/GildedRose.kt @@ -2,15 +2,35 @@ package com.gildedrose class GildedRose(var items: Array) { + fun isDecreasingItem(item: Item): Boolean { + if(item.name != "Aged Brie" && item.name != "Backstage passes to a TAFKAL80ETC concert") { + return false + } + return true + } + + fun decreaseItemQuality(item: Item, amount: Int) { + item.quality = item.quality - amount + } + + + fun updateQuality() { for (i in items.indices) { - if (items[i].name != "Aged Brie" && items[i].name != "Backstage passes to a TAFKAL80ETC concert") { + if (!isDecreasingItem(items[i])) { if (items[i].quality > 0) { - if (items[i].name != "Sulfuras, Hand of Ragnaros") { - items[i].quality = items[i].quality - 1 + if (items[i].name != "Sulfuras, Hand of Ragnaros" && items[i].name != "Conjured Mana Cake") { + decreaseItemQuality(items[i], 1) + } + + if(items[i].name == "Conjured Mana Cake") { + decreaseItemQuality(items[i], 2) } } + + } else { + if (items[i].quality < 50) { items[i].quality = items[i].quality + 1 @@ -30,20 +50,24 @@ class GildedRose(var items: Array) { } } + if (items[i].name != "Sulfuras, Hand of Ragnaros") { items[i].sellIn = items[i].sellIn - 1 } if (items[i].sellIn < 0) { - if (items[i].name != "Aged Brie") { +// if (items[i].name != "Aged Brie") { + if (!isDecreasingItem(items[0])) { + if (items[i].name != "Backstage passes to a TAFKAL80ETC concert") { if (items[i].quality > 0) { if (items[i].name != "Sulfuras, Hand of Ragnaros") { - items[i].quality = items[i].quality - 1 + decreaseItemQuality(items[i], 1) } } } else { - items[i].quality = items[i].quality - items[i].quality + decreaseItemQuality(items[i], items[i].quality) +// items[i].quality = items[i].quality - items[i].quality } } else { if (items[i].quality < 50) { diff --git a/Kotlin/src/test/kotlin/com/gildedrose/GildedRoseTest.kt b/Kotlin/src/test/kotlin/com/gildedrose/GildedRoseTest.kt index 797ac815..fc82bdc7 100644 --- a/Kotlin/src/test/kotlin/com/gildedrose/GildedRoseTest.kt +++ b/Kotlin/src/test/kotlin/com/gildedrose/GildedRoseTest.kt @@ -1,6 +1,7 @@ package com.gildedrose import org.junit.jupiter.api.Assertions.assertEquals +import org.junit.jupiter.api.Nested import org.junit.jupiter.api.Test internal class GildedRoseTest { @@ -10,10 +11,26 @@ internal class GildedRoseTest { val items = arrayOf(Item("foo", 0, 0)) val app = GildedRose(items) app.updateQuality() - assertEquals("fixme", app.items[0].name) + assertEquals("foo", app.items[0].name) } + @Test + fun `decreaseNormalQualityTest`() { + val items = arrayOf(Item("Elixir of the Mongoose", 5, 7),) + val app = GildedRose(items) + app.updateQuality() + assertEquals(6, app.items[0].quality) + } + + @Test + fun decreaseConjuredQualityTest() { + val items = arrayOf(Item("Conjured Mana Cake", 1, 6)) + val app = GildedRose(items) + app.updateQuality() + assertEquals(4, app.items[0].quality) + } + }