GildedRose-Refactoring-Kata/Kotlin/src/test/kotlin/com/gildedrose/GildedRoseTest.kt
2025-07-03 17:22:39 +01:00

157 lines
5.0 KiB
Kotlin

package com.gildedrose
import org.junit.jupiter.api.Assertions.assertEquals
import org.junit.jupiter.api.Test
internal class GildedRoseTest {
@Test
fun dexterityVest() {
val items = listOf(Item("+5 Dexterity Vest", 10, 20))
val app = GildedRose(items)
app.updateQuality()
assertEquals("+5 Dexterity Vest", app.items[0].name)
assertEquals(9, app.items[0].sellIn)
assertEquals(19, app.items[0].quality)
}
@Test
fun dexterityVestNegativeSellIn() {
val items = listOf(Item("+5 Dexterity Vest", 0, 20))
val app = GildedRose(items)
app.updateQuality()
assertEquals("+5 Dexterity Vest", app.items[0].name)
assertEquals(-1, app.items[0].sellIn)
assertEquals(18, app.items[0].quality)
}
@Test
fun agedBrie() {
val items = listOf(Item("Aged Brie", 2, 0))
val app = GildedRose(items)
app.updateQuality()
assertEquals("Aged Brie", app.items[0].name)
assertEquals(1, app.items[0].sellIn)
assertEquals(1, app.items[0].quality)
}
@Test
fun elixirOfTheMongoose() {
val items = listOf(Item("Elixir of the Mongoose", 5, 7))
val app = GildedRose(items)
app.updateQuality()
assertEquals("Elixir of the Mongoose", app.items[0].name)
assertEquals(4, app.items[0].sellIn)
assertEquals(6, app.items[0].quality)
}
@Test
fun elixirOfTheMongooseAt0() {
val items = listOf(Item("Elixir of the Mongoose", 0, 7))
val app = GildedRose(items)
app.updateQuality()
assertEquals("Elixir of the Mongoose", app.items[0].name)
assertEquals(-1, app.items[0].sellIn)
assertEquals(5, app.items[0].quality)
}
@Test
fun sulfuras0() {
val items = listOf(Item("Sulfuras, Hand of Ragnaros", 0, 80))
val app = GildedRose(items)
app.updateQuality()
assertEquals("Sulfuras, Hand of Ragnaros", app.items[0].name)
assertEquals(0, app.items[0].sellIn)
assertEquals(80, app.items[0].quality)
}
@Test
fun sulfurasMinus1() {
val items = listOf(Item("Sulfuras, Hand of Ragnaros", -1, 80))
val app = GildedRose(items)
app.updateQuality()
assertEquals("Sulfuras, Hand of Ragnaros", app.items[0].name)
assertEquals(-1, app.items[0].sellIn)
assertEquals(80, app.items[0].quality)
}
@Test
fun backstagePassesMoreThan10() {
val items = listOf(Item("Backstage passes to a TAFKAL80ETC concert", 15, 20))
val app = GildedRose(items)
app.updateQuality()
assertEquals("Backstage passes to a TAFKAL80ETC concert", app.items[0].name)
assertEquals(14, app.items[0].sellIn)
assertEquals(21, app.items[0].quality)
}
@Test
fun backstagePassesReached50at10() {
val items = listOf(Item("Backstage passes to a TAFKAL80ETC concert", 10, 49))
val app = GildedRose(items)
app.updateQuality()
assertEquals("Backstage passes to a TAFKAL80ETC concert", app.items[0].name)
assertEquals(9, app.items[0].sellIn)
assertEquals(50, app.items[0].quality)
}
@Test
fun backstagePassesReached50at5() {
val items = listOf(Item("Backstage passes to a TAFKAL80ETC concert", 5, 49))
val app = GildedRose(items)
app.updateQuality()
assertEquals("Backstage passes to a TAFKAL80ETC concert", app.items[0].name)
assertEquals(4, app.items[0].sellIn)
assertEquals(50, app.items[0].quality)
}
@Test
fun backstagePassesAt10() {
val items = listOf(Item("Backstage passes to a TAFKAL80ETC concert", 10, 30))
val app = GildedRose(items)
app.updateQuality()
assertEquals("Backstage passes to a TAFKAL80ETC concert", app.items[0].name)
assertEquals(9, app.items[0].sellIn)
assertEquals(32, app.items[0].quality)
}
@Test
fun backstagePassesAt5() {
val items = listOf(Item("Backstage passes to a TAFKAL80ETC concert", 5, 30))
val app = GildedRose(items)
app.updateQuality()
assertEquals("Backstage passes to a TAFKAL80ETC concert", app.items[0].name)
assertEquals(4, app.items[0].sellIn)
assertEquals(33, app.items[0].quality)
}
@Test
fun backstagePassesAt0() {
val items = listOf(Item("Backstage passes to a TAFKAL80ETC concert", 0, 30))
val app = GildedRose(items)
app.updateQuality()
assertEquals("Backstage passes to a TAFKAL80ETC concert", app.items[0].name)
assertEquals(-1, app.items[0].sellIn)
assertEquals(0, app.items[0].quality)
}
/*
@Test
fun conjuredBasic() {
val items = listOf(Item("Conjured Mana Cake", 3, 6))
val app = GildedRose(items)
app.updateQuality()
assertEquals("Conjured Mana Cake", app.items[0].name)
assertEquals(2, app.items[0].sellIn)
assertEquals(4, app.items[0].quality)
}
*/
}