mirror of
https://github.com/emilybache/GildedRose-Refactoring-Kata.git
synced 2026-02-18 16:01:42 +00:00
121 lines
4.2 KiB
Java
121 lines
4.2 KiB
Java
package com.gildedrose;
|
|
|
|
import org.junit.jupiter.api.Test;
|
|
|
|
import static org.junit.jupiter.api.Assertions.assertEquals;
|
|
|
|
class ItemHolderFactoryTest {
|
|
|
|
@Test
|
|
void create_generic_item() {
|
|
ItemHolder itemHolder = ItemHolderFactory.createItemHolder(new Item("foo", 0, 0));
|
|
assertEquals("foo", itemHolder.item.name);
|
|
assertEquals(0, itemHolder.item.sellIn);
|
|
assertEquals(0, itemHolder.item.quality);
|
|
}
|
|
|
|
@Test
|
|
void quality_decrease() {
|
|
ItemHolder itemHolder = ItemHolderFactory.createItemHolder(new Item("foo", 1, 40));
|
|
itemHolder.update();
|
|
assertEquals(0, itemHolder.item.sellIn);
|
|
assertEquals(39, itemHolder.item.quality);
|
|
}
|
|
|
|
@Test
|
|
void fast_quality_decrease() {
|
|
ItemHolder itemHolder = ItemHolderFactory.createItemHolder(new Item("foo", 0, 40));
|
|
itemHolder.update();
|
|
assertEquals(-1, itemHolder.item.sellIn);
|
|
assertEquals(38, itemHolder.item.quality);
|
|
}
|
|
|
|
@Test
|
|
void never_negative_quality() {
|
|
ItemHolder itemHolder = ItemHolderFactory.createItemHolder(new Item("foo", -1, 1));
|
|
itemHolder.update();
|
|
assertEquals(-2, itemHolder.item.sellIn);
|
|
assertEquals(0, itemHolder.item.quality);
|
|
}
|
|
|
|
@Test
|
|
void aged_brie_quality_increase() {
|
|
ItemHolder itemHolder = ItemHolderFactory.createItemHolder(new Item("Aged Brie", 5, 20));
|
|
itemHolder.update();
|
|
assertEquals(4, itemHolder.item.sellIn);
|
|
assertEquals(21, itemHolder.item.quality);
|
|
}
|
|
|
|
@Test
|
|
void aged_brie_max_quality_increase() {
|
|
ItemHolder itemHolder = ItemHolderFactory.createItemHolder(new Item("Aged Brie", 5, 50));
|
|
itemHolder.update();
|
|
assertEquals(4, itemHolder.item.sellIn);
|
|
assertEquals(50, itemHolder.item.quality);
|
|
}
|
|
|
|
@Test
|
|
void sulfuras() {
|
|
ItemHolder itemHolder = ItemHolderFactory.createItemHolder(new Item("Sulfuras, Hand of Ragnaros", 5, 80));
|
|
itemHolder.update();
|
|
assertEquals(5, itemHolder.item.sellIn);
|
|
assertEquals(80, itemHolder.item.quality);
|
|
}
|
|
|
|
@Test
|
|
void sulfuras_expired() {
|
|
ItemHolder itemHolder = ItemHolderFactory.createItemHolder(new Item("Sulfuras, Hand of Ragnaros", -2, 80));
|
|
itemHolder.update();
|
|
assertEquals(-2, itemHolder.item.sellIn);
|
|
assertEquals(80, itemHolder.item.quality);
|
|
}
|
|
|
|
@Test
|
|
void backstage_passes_quality_increase() {
|
|
ItemHolder itemHolder = ItemHolderFactory.createItemHolder(new Item("Backstage passes to a TAFKAL80ETC concert", 15, 20));
|
|
itemHolder.update();
|
|
assertEquals(14, itemHolder.item.sellIn);
|
|
assertEquals(21, itemHolder.item.quality);
|
|
}
|
|
|
|
@Test
|
|
void backstage_passes_max_quality() {
|
|
ItemHolder itemHolder = ItemHolderFactory.createItemHolder(new Item("Backstage passes to a TAFKAL80ETC concert", 2, 50));
|
|
itemHolder.update();
|
|
assertEquals(1, itemHolder.item.sellIn);
|
|
assertEquals(50, itemHolder.item.quality);
|
|
}
|
|
|
|
@Test
|
|
void backstage_passes_day_ten() {
|
|
ItemHolder itemHolder = ItemHolderFactory.createItemHolder(new Item("Backstage passes to a TAFKAL80ETC concert", 10, 20));
|
|
itemHolder.update();
|
|
assertEquals(9, itemHolder.item.sellIn);
|
|
assertEquals(22, itemHolder.item.quality);
|
|
}
|
|
|
|
@Test
|
|
void backstage_passes_day_five() {
|
|
ItemHolder itemHolder = ItemHolderFactory.createItemHolder(new Item("Backstage passes to a TAFKAL80ETC concert", 5, 20));
|
|
itemHolder.update();
|
|
assertEquals(4, itemHolder.item.sellIn);
|
|
assertEquals(23, itemHolder.item.quality);
|
|
}
|
|
|
|
@Test
|
|
void backstage_passes_day_zero() {
|
|
ItemHolder itemHolder = ItemHolderFactory.createItemHolder(new Item("Backstage passes to a TAFKAL80ETC concert", 1, 20));
|
|
itemHolder.update();
|
|
assertEquals(0, itemHolder.item.sellIn);
|
|
assertEquals(23, itemHolder.item.quality);
|
|
}
|
|
|
|
@Test
|
|
void backstage_passes_expired() {
|
|
ItemHolder itemHolder = ItemHolderFactory.createItemHolder(new Item("Backstage passes to a TAFKAL80ETC concert", 0, 20));
|
|
itemHolder.update();
|
|
assertEquals(-1, itemHolder.item.sellIn);
|
|
assertEquals(0, itemHolder.item.quality);
|
|
}
|
|
}
|