Test voor Aged Brie toegevoegd.

This commit is contained in:
Eric Jan Malotaux 2022-04-26 23:19:25 +02:00
parent db21c01767
commit 7e4253f6b3
2 changed files with 46 additions and 2 deletions

View File

@ -1,6 +1,6 @@
package com.gildedrose
class GildedRose(var items: Array<Item>) {
class GildedRose(val items: Array<Item>) {
fun updateQuality() {
for (i in items.indices) {

View File

@ -1,10 +1,23 @@
package com.gildedrose
import org.junit.jupiter.api.Assertions.assertEquals
import org.junit.jupiter.api.Assertions.*
import org.junit.jupiter.api.Test
internal class GildedRoseTest {
val items = arrayOf(
Item("+5 Dexterity Vest", 10, 20), //
Item("Aged Brie", 2, 0), //
Item("Elixir of the Mongoose", 5, 7), //
Item("Sulfuras, Hand of Ragnaros", 0, 80), //
Item("Sulfuras, Hand of Ragnaros", -1, 80),
Item("Backstage passes to a TAFKAL80ETC concert", 15, 20),
Item("Backstage passes to a TAFKAL80ETC concert", 10, 49),
Item("Backstage passes to a TAFKAL80ETC concert", 5, 49),
// this conjured item does not work properly yet
Item("Conjured Mana Cake", 3, 6)
)
@Test
fun foo() {
val items = arrayOf<Item>(Item("foo", 0, 0))
@ -14,6 +27,37 @@ internal class GildedRoseTest {
}
@Test
fun allItemsHaveASellInValue() {
items.forEach {
assertNotNull(it.sellIn)
}
}
private val gildedRose = GildedRose(items)
@Test
fun qualityIsNeverNegative() {
(1..100).forEach {
gildedRose.updateQuality()
items.forEach {
assertTrue(it.quality >= 0, "The quality of an item is never negative")
}
}
}
@Test
fun agedBrieIncreasesInQuality() {
items.first { it.name == "Aged Brie" }.also { agedBrie ->
while (agedBrie.quality < 50) {
val quality = agedBrie.quality
gildedRose.updateQuality()
assertTrue(agedBrie.quality > quality)
}
}
}
}