mirror of
https://github.com/emilybache/GildedRose-Refactoring-Kata.git
synced 2026-02-20 08:51:08 +00:00
[feat] Cojured items degrade x2, refact
This commit is contained in:
parent
f80413c2fd
commit
1b60534870
@ -2,15 +2,35 @@ package com.gildedrose
|
|||||||
|
|
||||||
class GildedRose(var items: Array<Item>) {
|
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() {
|
fun updateQuality() {
|
||||||
for (i in items.indices) {
|
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].quality > 0) {
|
||||||
if (items[i].name != "Sulfuras, Hand of Ragnaros") {
|
if (items[i].name != "Sulfuras, Hand of Ragnaros" && items[i].name != "Conjured Mana Cake") {
|
||||||
items[i].quality = items[i].quality - 1
|
decreaseItemQuality(items[i], 1)
|
||||||
|
}
|
||||||
|
|
||||||
|
if(items[i].name == "Conjured Mana Cake") {
|
||||||
|
decreaseItemQuality(items[i], 2)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
if (items[i].quality < 50) {
|
if (items[i].quality < 50) {
|
||||||
items[i].quality = items[i].quality + 1
|
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") {
|
if (items[i].name != "Sulfuras, Hand of Ragnaros") {
|
||||||
items[i].sellIn = items[i].sellIn - 1
|
items[i].sellIn = items[i].sellIn - 1
|
||||||
}
|
}
|
||||||
|
|
||||||
if (items[i].sellIn < 0) {
|
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].name != "Backstage passes to a TAFKAL80ETC concert") {
|
||||||
if (items[i].quality > 0) {
|
if (items[i].quality > 0) {
|
||||||
if (items[i].name != "Sulfuras, Hand of Ragnaros") {
|
if (items[i].name != "Sulfuras, Hand of Ragnaros") {
|
||||||
items[i].quality = items[i].quality - 1
|
decreaseItemQuality(items[i], 1)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} 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 {
|
} else {
|
||||||
if (items[i].quality < 50) {
|
if (items[i].quality < 50) {
|
||||||
|
|||||||
@ -1,6 +1,7 @@
|
|||||||
package com.gildedrose
|
package com.gildedrose
|
||||||
|
|
||||||
import org.junit.jupiter.api.Assertions.assertEquals
|
import org.junit.jupiter.api.Assertions.assertEquals
|
||||||
|
import org.junit.jupiter.api.Nested
|
||||||
import org.junit.jupiter.api.Test
|
import org.junit.jupiter.api.Test
|
||||||
|
|
||||||
internal class GildedRoseTest {
|
internal class GildedRoseTest {
|
||||||
@ -10,10 +11,26 @@ internal class GildedRoseTest {
|
|||||||
val items = arrayOf<Item>(Item("foo", 0, 0))
|
val items = arrayOf<Item>(Item("foo", 0, 0))
|
||||||
val app = GildedRose(items)
|
val app = GildedRose(items)
|
||||||
app.updateQuality()
|
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)
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user