GildedRose-Refactoring-Kata/Java/src/test/java/com/gildedrose/item/ConjuredGRItemUpdateQualityTest.java

56 lines
1.6 KiB
Java

package com.gildedrose.item;
import com.gildedrose.Item;
import com.gildedrose.item.GRItem;
import com.gildedrose.item.GRItemFactory;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.ValueSource;
import static com.gildedrose.item.GRItemFactory.CONJURED;
import static org.apache.commons.lang3.RandomStringUtils.random;
import static org.assertj.core.api.Assertions.assertThat;
public class ConjuredGRItemUpdateQualityTest {
private static final String CONJURED_STUFF = CONJURED + " Stuff";
@Test
public void lowersTheSellInValue() {
Item item = new Item(CONJURED_STUFF, 10, 20);
GRItem grItem = GRItemFactory.create(item);
grItem.updateQuality();
assertThat(item.sellIn).isEqualTo(9);
}
@Test
public void qualityDegradesBy2() {
Item item = new Item(CONJURED_STUFF, 10, 20);
GRItem grItem = GRItemFactory.create(item);
grItem.updateQuality();
assertThat(item.quality).isEqualTo(18);
}
@Test
public void qualityDegradesTwiceAsFastWhenSellByDatePassed() {
Item item = new Item(CONJURED_STUFF, 0, 20);
GRItem grItem = GRItemFactory.create(item);
grItem.updateQuality();
assertThat(item.quality).isEqualTo(16);
}
@ParameterizedTest(name = "with quality {0}")
@ValueSource(ints = {0, 1, 2})
public void conjuredItemDegradesNotBelow0(int quality) {
Item item = new Item(CONJURED_STUFF, 10, quality);
GRItem grItem = GRItemFactory.create(item);
grItem.updateQuality();
assertThat(item.quality).isEqualTo(0);
}
}