add parameterized test

This commit is contained in:
Kirti Deshmukh 2023-02-03 06:59:59 +05:30
parent 8ab2ff61df
commit 2baced7d94

View File

@ -1,19 +1,30 @@
package com.gildedrose;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.Arguments;
import org.junit.jupiter.params.provider.MethodSource;
import java.util.stream.Stream;
import static org.junit.jupiter.api.Assertions.assertEquals;
class GildedRoseTest {
@Test
void shouldDegradeQualityForAnItem() {
Item[] items = new Item[]{new Item("Normal Item", 0, 0)};
GildedRose app = new GildedRose(items);
app.updateQuality();
assertEquals("Normal Item", app.items[0].name);
assertEquals(-1, app.items[0].sellIn);
assertEquals(0, app.items[0].quality);
private static Stream<Arguments> provideInputWhereSellInDayPassesByOneDay() {
return Stream.of(
Arguments.of(new GildedRose(new Item[]{new Item("Normal Item", 0, 0)}), "Normal Item", -1, 0)
);
}
@ParameterizedTest
@MethodSource("provideInputWhereSellInDayPassesByOneDay")
void shouldDegradeQualityForAnItem(GildedRose gildedRose, String expectedName, int expectedSellIn, int expectedQuality) {
gildedRose.updateQuality();
assertEquals(expectedName, gildedRose.items[0].name);
assertEquals(expectedSellIn, gildedRose.items[0].sellIn);
assertEquals(expectedQuality, gildedRose.items[0].quality);
}
}