mirror of
https://github.com/emilybache/GildedRose-Refactoring-Kata.git
synced 2026-02-17 07:21:31 +00:00
All unit tests - disable errors
This commit is contained in:
parent
c61a88a221
commit
c8e535cc5c
@ -1,17 +1,404 @@
|
|||||||
package com.gildedrose;
|
package com.gildedrose;
|
||||||
|
|
||||||
|
import org.junit.jupiter.api.Disabled;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||||
|
|
||||||
class GildedRoseTest {
|
class GildedRoseTest {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Simple quality degradation
|
||||||
|
*/
|
||||||
@Test
|
@Test
|
||||||
void foo() {
|
void whenSale1Quality2_afterUpdate_ThenSale0Quality1() {
|
||||||
Item[] items = new Item[] { new Item("foo", 0, 0) };
|
Item[] items = new Item[]{new Item("foo", 1, 2)};
|
||||||
GildedRose app = new GildedRose(items);
|
GildedRose app = new GildedRose(items);
|
||||||
app.updateQuality();
|
app.updateQuality();
|
||||||
assertEquals("fixme", app.items[0].name);
|
Item item = app.items[0];
|
||||||
|
assertEquals("foo", item.name);
|
||||||
|
assertEquals(0, item.sellIn);
|
||||||
|
assertEquals(1, item.quality);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Simple quality degradation
|
||||||
|
*/
|
||||||
|
@Test
|
||||||
|
void whenSale1Quality1_afterUpdate_ThenSale0Quality0() {
|
||||||
|
Item[] items = new Item[]{new Item("foo", 1, 1)};
|
||||||
|
GildedRose app = new GildedRose(items);
|
||||||
|
app.updateQuality();
|
||||||
|
Item item = app.items[0];
|
||||||
|
assertEquals("foo", item.name);
|
||||||
|
assertEquals(0, item.sellIn);
|
||||||
|
assertEquals(0, item.quality);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Quality never lower than zero
|
||||||
|
*/
|
||||||
|
@Test
|
||||||
|
void whenSale0Quality0_afterUpdate_ThenSaleM1Quality0() {
|
||||||
|
Item[] items = new Item[]{new Item("foo", 0, 0)};
|
||||||
|
GildedRose app = new GildedRose(items);
|
||||||
|
app.updateQuality();
|
||||||
|
Item item = app.items[0];
|
||||||
|
assertEquals("foo", item.name);
|
||||||
|
assertEquals(-1, item.sellIn);
|
||||||
|
assertEquals(0, item.quality);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Double quality degradation
|
||||||
|
*/
|
||||||
|
@Test
|
||||||
|
void whenSaleM10Quality8_afterUpdate_ThenSaleM11Quality6() {
|
||||||
|
Item[] items = new Item[]{new Item("foo", -10, 8)};
|
||||||
|
GildedRose app = new GildedRose(items);
|
||||||
|
app.updateQuality();
|
||||||
|
Item item = app.items[0];
|
||||||
|
assertEquals("foo", item.name);
|
||||||
|
assertEquals(-11, item.sellIn);
|
||||||
|
assertEquals(6, item.quality);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Double quality degradation edge
|
||||||
|
*/
|
||||||
|
@Test
|
||||||
|
void whenSale0Quality10_afterUpdate_ThenSaleM1Quality8() {
|
||||||
|
Item[] items = new Item[]{new Item("foo", 0, 10)};
|
||||||
|
GildedRose app = new GildedRose(items);
|
||||||
|
app.updateQuality();
|
||||||
|
Item item = app.items[0];
|
||||||
|
assertEquals("foo", item.name);
|
||||||
|
assertEquals(-1, item.sellIn);
|
||||||
|
assertEquals(8, item.quality);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Double quality degradation edge
|
||||||
|
*/
|
||||||
|
@Test
|
||||||
|
void whenSale0Quality2_afterUpdate_ThenSaleM1Quality0() {
|
||||||
|
Item[] items = new Item[]{new Item("foo", 0, 2)};
|
||||||
|
GildedRose app = new GildedRose(items);
|
||||||
|
app.updateQuality();
|
||||||
|
Item item = app.items[0];
|
||||||
|
assertEquals("foo", item.name);
|
||||||
|
assertEquals(-1, item.sellIn);
|
||||||
|
assertEquals(0, item.quality);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Conjured Quality decreases 2 before expired
|
||||||
|
*/
|
||||||
|
@Test
|
||||||
|
@Disabled
|
||||||
|
void whenConjuredSale1Quality2_afterUpdate_ThenSale0Quality0() {
|
||||||
|
Item[] items = new Item[]{new Item("Conjured Mana Cake", 1, 2)};
|
||||||
|
GildedRose app = new GildedRose(items);
|
||||||
|
app.updateQuality();
|
||||||
|
Item item = app.items[0];
|
||||||
|
assertEquals("Conjured Mana Cake", item.name);
|
||||||
|
assertEquals(0, item.sellIn);
|
||||||
|
assertEquals(0, item.quality);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Conjured Quality decreases 4 after expired
|
||||||
|
*/
|
||||||
|
@Test
|
||||||
|
@Disabled
|
||||||
|
void whenConjuredSaleM10Quality8_afterUpdate_ThenSaleM11Quality4() {
|
||||||
|
Item[] items = new Item[]{new Item("Conjured Mana Cake", -10, 8)};
|
||||||
|
GildedRose app = new GildedRose(items);
|
||||||
|
app.updateQuality();
|
||||||
|
Item item = app.items[0];
|
||||||
|
assertEquals("Conjured Mana Cake", item.name);
|
||||||
|
assertEquals(-11, item.sellIn);
|
||||||
|
assertEquals(4, item.quality);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Conjured Quality decreases 4 after expired edge
|
||||||
|
*/
|
||||||
|
@Test
|
||||||
|
@Disabled
|
||||||
|
void whenConjuredSale0Quality10_afterUpdate_ThenSaleM1Quality6() {
|
||||||
|
Item[] items = new Item[]{new Item("Conjured Mana Cake", 0, 10)};
|
||||||
|
GildedRose app = new GildedRose(items);
|
||||||
|
app.updateQuality();
|
||||||
|
Item item = app.items[0];
|
||||||
|
assertEquals("Conjured Mana Cake", item.name);
|
||||||
|
assertEquals(-1, item.sellIn);
|
||||||
|
assertEquals(6, item.quality);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Conjured Quality never lower than 0
|
||||||
|
*/
|
||||||
|
@Test
|
||||||
|
void whenConjuredSale0Quality0_afterUpdate_ThenSaleM1Quality0() {
|
||||||
|
Item[] items = new Item[]{new Item("Conjured Mana Cake", 0, 0)};
|
||||||
|
GildedRose app = new GildedRose(items);
|
||||||
|
app.updateQuality();
|
||||||
|
Item item = app.items[0];
|
||||||
|
assertEquals("Conjured Mana Cake", item.name);
|
||||||
|
assertEquals(-1, item.sellIn);
|
||||||
|
assertEquals(0, item.quality);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Conjured Quality never lower than 0
|
||||||
|
*/
|
||||||
|
@Test
|
||||||
|
void whenConjuredSale1Quality1_afterUpdate_ThenSale0Quality0() {
|
||||||
|
Item[] items = new Item[]{new Item("Conjured Mana Cake", 1, 1)};
|
||||||
|
GildedRose app = new GildedRose(items);
|
||||||
|
app.updateQuality();
|
||||||
|
assertEquals("Conjured Mana Cake", app.items[0].name);
|
||||||
|
assertEquals(0, app.items[0].sellIn);
|
||||||
|
assertEquals(0, app.items[0].quality);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* AgedBrie Quality increases 1 before expiry
|
||||||
|
*/
|
||||||
|
@Test
|
||||||
|
void whenAgedBrieSale10Quality8_afterUpdate_ThenSale9Quality9() {
|
||||||
|
Item[] items = new Item[]{new Item("Aged Brie", 10, 8)};
|
||||||
|
GildedRose app = new GildedRose(items);
|
||||||
|
app.updateQuality();
|
||||||
|
Item item = app.items[0];
|
||||||
|
assertEquals("Aged Brie", item.name);
|
||||||
|
assertEquals(9, item.sellIn);
|
||||||
|
assertEquals(9, item.quality);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* AgedBrie Quality increases 2 after expiry
|
||||||
|
*/
|
||||||
|
@Test
|
||||||
|
void whenAgedBrieSaleM5Quality8_afterUpdate_ThenSaleM6Quality10() {
|
||||||
|
Item[] items = new Item[]{new Item("Aged Brie", -5, 8)};
|
||||||
|
GildedRose app = new GildedRose(items);
|
||||||
|
app.updateQuality();
|
||||||
|
Item item = app.items[0];
|
||||||
|
assertEquals("Aged Brie", item.name);
|
||||||
|
assertEquals(-6, item.sellIn);
|
||||||
|
assertEquals(10, item.quality);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* AgedBrie Quality increases 2 after expiry edge
|
||||||
|
*/
|
||||||
|
@Test
|
||||||
|
void whenAgedBrieSale0Quality8_afterUpdate_ThenSaleM1Quality10() {
|
||||||
|
Item[] items = new Item[]{new Item("Aged Brie", 0, 8)};
|
||||||
|
GildedRose app = new GildedRose(items);
|
||||||
|
app.updateQuality();
|
||||||
|
Item item = app.items[0];
|
||||||
|
assertEquals("Aged Brie", item.name);
|
||||||
|
assertEquals(-1, item.sellIn);
|
||||||
|
assertEquals(10, item.quality);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* AgedBrie Quality increases but does not exceed maximum
|
||||||
|
*/
|
||||||
|
@Test
|
||||||
|
void whenAgedBrieSaleM5Quality50_afterUpdate_ThenSaleM6Quality50() {
|
||||||
|
Item[] items = new Item[]{new Item("Aged Brie", -5, 50)};
|
||||||
|
GildedRose app = new GildedRose(items);
|
||||||
|
app.updateQuality();
|
||||||
|
Item item = app.items[0];
|
||||||
|
assertEquals("Aged Brie", item.name);
|
||||||
|
assertEquals(-6, item.sellIn);
|
||||||
|
assertEquals(50, item.quality);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* AgedBrie Quality increases but does not exceed maximum
|
||||||
|
*/
|
||||||
|
@Test
|
||||||
|
void whenAgedBrieSaleM5Quality49_afterUpdate_ThenSaleM6Quality50() {
|
||||||
|
Item[] items = new Item[]{new Item("Aged Brie", -5, 49)};
|
||||||
|
GildedRose app = new GildedRose(items);
|
||||||
|
app.updateQuality();
|
||||||
|
Item item = app.items[0];
|
||||||
|
assertEquals("Aged Brie", item.name);
|
||||||
|
assertEquals(-6, item.sellIn);
|
||||||
|
assertEquals(50, item.quality);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sulfuras never changes
|
||||||
|
*/
|
||||||
|
@Test
|
||||||
|
void whenSulfuras_afterUpdate_ThenNoChange() {
|
||||||
|
Item[] items = new Item[]{new Item("Sulfuras, Hand of Ragnaros", 10, 80)};
|
||||||
|
GildedRose app = new GildedRose(items);
|
||||||
|
app.updateQuality();
|
||||||
|
Item item = app.items[0];
|
||||||
|
assertEquals("Sulfuras, Hand of Ragnaros", item.name);
|
||||||
|
assertEquals(10, item.sellIn);
|
||||||
|
assertEquals(80, item.quality);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Backstage passes increase 1 quality after update when more than 10 days to concert
|
||||||
|
*/
|
||||||
|
@Test
|
||||||
|
void whenBackstagePassesSale20Quality20_afterUpdate_ThenSale19Quality21() {
|
||||||
|
Item[] items = new Item[]{new Item("Backstage passes to a TAFKAL80ETC concert", 20, 20)};
|
||||||
|
GildedRose app = new GildedRose(items);
|
||||||
|
app.updateQuality();
|
||||||
|
Item item = app.items[0];
|
||||||
|
assertEquals("Backstage passes to a TAFKAL80ETC concert", item.name);
|
||||||
|
assertEquals(19, item.sellIn);
|
||||||
|
assertEquals(21, item.quality);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Backstage passes increase 2 quality after update when 10 days to concert
|
||||||
|
*/
|
||||||
|
@Test
|
||||||
|
void whenBackstagePassesSale10Quality20_afterUpdate_ThenSale19Quality22() {
|
||||||
|
Item[] items = new Item[]{new Item("Backstage passes to a TAFKAL80ETC concert", 10, 20)};
|
||||||
|
GildedRose app = new GildedRose(items);
|
||||||
|
app.updateQuality();
|
||||||
|
Item item = app.items[0];
|
||||||
|
assertEquals("Backstage passes to a TAFKAL80ETC concert", item.name);
|
||||||
|
assertEquals(9, item.sellIn);
|
||||||
|
assertEquals(22, item.quality);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Backstage passes increase 2 quality after update when less than 10 days inclusive, but more than 5 to concert
|
||||||
|
*/
|
||||||
|
@Test
|
||||||
|
void whenBackstagePassesSale10Quality20_afterUpdate_ThenSale9Quality22() {
|
||||||
|
Item[] items = new Item[]{new Item("Backstage passes to a TAFKAL80ETC concert", 10, 20)};
|
||||||
|
GildedRose app = new GildedRose(items);
|
||||||
|
app.updateQuality();
|
||||||
|
Item item = app.items[0];
|
||||||
|
assertEquals("Backstage passes to a TAFKAL80ETC concert", item.name);
|
||||||
|
assertEquals(9, item.sellIn);
|
||||||
|
assertEquals(22, item.quality);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Backstage passes increase 3 quality after update when 5 days to concert
|
||||||
|
*/
|
||||||
|
@Test
|
||||||
|
void whenBackstagePassesSale5Quality20_afterUpdate_ThenSale4Quality23() {
|
||||||
|
Item[] items = new Item[]{new Item("Backstage passes to a TAFKAL80ETC concert", 5, 20)};
|
||||||
|
GildedRose app = new GildedRose(items);
|
||||||
|
app.updateQuality();
|
||||||
|
Item item = app.items[0];
|
||||||
|
assertEquals("Backstage passes to a TAFKAL80ETC concert", item.name);
|
||||||
|
assertEquals(4, item.sellIn);
|
||||||
|
assertEquals(23, item.quality);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Backstage passes increase 3 quality after update when less than 5 days inclusive, but more than 0 to concert
|
||||||
|
*/
|
||||||
|
@Test
|
||||||
|
void whenBackstagePassesSale3Quality20_afterUpdate_ThenSale2Quality23() {
|
||||||
|
Item[] items = new Item[]{new Item("Backstage passes to a TAFKAL80ETC concert", 3, 20)};
|
||||||
|
GildedRose app = new GildedRose(items);
|
||||||
|
app.updateQuality();
|
||||||
|
Item item = app.items[0];
|
||||||
|
assertEquals("Backstage passes to a TAFKAL80ETC concert", item.name);
|
||||||
|
assertEquals(2, item.sellIn);
|
||||||
|
assertEquals(23, item.quality);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Backstage passes never go over 50 quality > 10 days to go
|
||||||
|
*/
|
||||||
|
@Test
|
||||||
|
void whenBackstagePassesSale20Quality50_afterUpdate_ThenSale19Quality50() {
|
||||||
|
Item[] items = new Item[]{new Item("Backstage passes to a TAFKAL80ETC concert", 20, 50)};
|
||||||
|
GildedRose app = new GildedRose(items);
|
||||||
|
app.updateQuality();
|
||||||
|
Item item = app.items[0];
|
||||||
|
assertEquals("Backstage passes to a TAFKAL80ETC concert", item.name);
|
||||||
|
assertEquals(19, item.sellIn);
|
||||||
|
assertEquals(50, item.quality);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Backstage passes never go over 50 quality < 10 days to go
|
||||||
|
*/
|
||||||
|
@Test
|
||||||
|
void whenBackstagePassesSale10Quality49_afterUpdate_ThenSale9Quality50() {
|
||||||
|
Item[] items = new Item[]{new Item("Backstage passes to a TAFKAL80ETC concert", 10, 49)};
|
||||||
|
GildedRose app = new GildedRose(items);
|
||||||
|
app.updateQuality();
|
||||||
|
Item item = app.items[0];
|
||||||
|
assertEquals("Backstage passes to a TAFKAL80ETC concert", item.name);
|
||||||
|
assertEquals(9, item.sellIn);
|
||||||
|
assertEquals(50, item.quality);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Backstage passes never go over 50 quality < 5 days to go
|
||||||
|
*/
|
||||||
|
@Test
|
||||||
|
void whenBackstagePassesSale3Quality48_afterUpdate_ThenSale2Quality50() {
|
||||||
|
Item[] items = new Item[]{new Item("Backstage passes to a TAFKAL80ETC concert", 3, 48)};
|
||||||
|
GildedRose app = new GildedRose(items);
|
||||||
|
app.updateQuality();
|
||||||
|
Item item = app.items[0];
|
||||||
|
assertEquals("Backstage passes to a TAFKAL80ETC concert", item.name);
|
||||||
|
assertEquals(2, item.sellIn);
|
||||||
|
assertEquals(50, item.quality);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Backstage passes quality goes to zero after concert
|
||||||
|
*/
|
||||||
|
@Test
|
||||||
|
void whenBackstagePassesSaleM1Quality20_afterUpdate_ThenSaleM2Quality0() {
|
||||||
|
Item[] items = new Item[]{new Item("Backstage passes to a TAFKAL80ETC concert", -1, 20)};
|
||||||
|
GildedRose app = new GildedRose(items);
|
||||||
|
app.updateQuality();
|
||||||
|
Item item = app.items[0];
|
||||||
|
assertEquals("Backstage passes to a TAFKAL80ETC concert", item.name);
|
||||||
|
assertEquals(-2, item.sellIn);
|
||||||
|
assertEquals(0, item.quality);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Backstage passes quality goes to zero after concert edge
|
||||||
|
*/
|
||||||
|
@Test
|
||||||
|
void whenBackstagePassesSale0Quality20_afterUpdate_ThenSaleM1Quality0() {
|
||||||
|
Item[] items = new Item[]{new Item("Backstage passes to a TAFKAL80ETC concert", 0, 20)};
|
||||||
|
GildedRose app = new GildedRose(items);
|
||||||
|
app.updateQuality();
|
||||||
|
Item item = app.items[0];
|
||||||
|
assertEquals("Backstage passes to a TAFKAL80ETC concert", item.name);
|
||||||
|
assertEquals(-1, item.sellIn);
|
||||||
|
assertEquals(0, item.quality);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Backstage passes quality stays zero after concert edge
|
||||||
|
*/
|
||||||
|
@Test
|
||||||
|
void whenBackstagePassesSaleM5Quality0_afterUpdate_ThenSaleM6Quality0() {
|
||||||
|
Item[] items = new Item[]{new Item("Backstage passes to a TAFKAL80ETC concert", -5, 0)};
|
||||||
|
GildedRose app = new GildedRose(items);
|
||||||
|
app.updateQuality();
|
||||||
|
Item item = app.items[0];
|
||||||
|
assertEquals("Backstage passes to a TAFKAL80ETC concert", item.name);
|
||||||
|
assertEquals(-6, item.sellIn);
|
||||||
|
assertEquals(0, item.quality);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user