First unit tests + update directory for ci

This commit is contained in:
Lewie Mortier 2021-06-22 20:47:12 +02:00
parent 1a6a489773
commit 8bb15c58dc
2 changed files with 54 additions and 4 deletions

View File

@ -20,7 +20,7 @@ jobs:
java-version: '11' java-version: '11'
distribution: 'adopt' distribution: 'adopt'
- name: Move to the correct folder - name: Move to the correct folder
run: cd kotlin run: cd Kotlin
- name: Grant execute permission for gradlew - name: Grant execute permission for gradlew
run: chmod +x gradlew run: chmod +x gradlew
- name: Run tests - name: Run tests

View File

@ -6,14 +6,64 @@ import org.junit.jupiter.api.Test
internal class GildedRoseTest { internal class GildedRoseTest {
@Test @Test
fun foo() { internal fun `regular item decreases as expected`() {
val items = arrayOf<Item>(Item("foo", 0, 0)) val items = arrayOf(Item("foo", 1, 1))
val app = GildedRose(items) val app = GildedRose(items)
app.updateQuality() app.updateQuality()
assertEquals("fixme", app.items[0].name)
app.assertQualityAndSellIn(
expectedSellIn = 0,
expectedQuality = 0
)
} }
@Test
internal fun `Quality decreases twice as fast after expiry date passed`() {
val item = Item("foo", 0, 2)
val app = GildedRose(arrayOf(item))
app.updateQuality()
app.assertQualityAndSellIn(
expectedSellIn = -1,
expectedQuality = 0
)
}
@Test
internal fun `Quality decreases normally when reaching sellIn date`() {
val item = Item("foo", 1, 5)
val app = GildedRose(arrayOf(item))
app.updateQuality()
app.assertQualityAndSellIn(
expectedSellIn = 0,
expectedQuality = 4
)
app.updateQuality()
app.assertQualityAndSellIn(
expectedSellIn = -1,
expectedQuality = 2
)
}
@Test
internal fun `Quality decreases after sellin reached 0 and quality is 0`() {
val item = Item("foo", 0, 2)
val app = GildedRose(arrayOf(item))
app.updateQuality()
app.assertQualityAndSellIn(
expectedSellIn = -1,
expectedQuality = 0
)
}
private fun GildedRose.assertQualityAndSellIn(expectedSellIn: Int, expectedQuality: Int, itemIndex: Int = 0) {
val item = items[itemIndex]
assertEquals(expectedSellIn, item.sellIn)
assertEquals(expectedQuality, item.quality)
}
} }