Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
Third Version of Test Code
@Test
fun `sulfuras never changes`() {
assertBeforeAndAfter(SULFURUS_NAME, Int.MAX_VALUE, 80, Int.MAX_VALUE,80)
}
@Test
fun `sulfuras never changes even with weird values`() {
// NOTE: Gilded rose does not enforce quality or sellin for sulfuras
assertBeforeAndAfter(SULFURUS_NAME,-1,-3,-1,-3)
}
@Test
fun `generic salable items lose quality by 1`() {
assertBeforeAndAfter(GENERIC_NAME,10,5,9,4)
}
fun assertBeforeAndAfter(beforeName:String,beforeSellin:Int,beforeQuality:Int,afterSellin:Int,afterQuality:Int) {
updateQuality(Item(beforeName,beforeSellin,beforeQuality)).apply {
assertThat(name).isEqualTo(beforeName)
assertThat(sellIn).isEqualTo(afterSellin)
assertThat(quality).isEqualTo(afterQuality)
}
}
fun updateQuality(item:Item):Item {
val items = arrayOf(item)
val app = GildedRose(items)
app.updateQuality()
return app.items[0]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment