[feat] Cojured items degrade x2, refact

This commit is contained in:
Derek Etman 2022-03-09 13:37:54 -08:00
parent f80413c2fd
commit 1b60534870
2 changed files with 48 additions and 7 deletions

View File

@ -2,15 +2,35 @@ package com.gildedrose
class GildedRose(var items: Array<Item>) {
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<Item>) {
}
}
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) {

View File

@ -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>(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>(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)
}
}