mirror of
https://github.com/emilybache/GildedRose-Refactoring-Kata.git
synced 2026-02-16 15:01:28 +00:00
All unit tests - disable errors
This commit is contained in:
parent
c61a88a221
commit
c8e535cc5c
@ -1,17 +1,404 @@
|
||||
package com.gildedrose;
|
||||
|
||||
import org.junit.jupiter.api.Disabled;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||
|
||||
class GildedRoseTest {
|
||||
|
||||
/**
|
||||
* Simple quality degradation
|
||||
*/
|
||||
@Test
|
||||
void foo() {
|
||||
Item[] items = new Item[] { new Item("foo", 0, 0) };
|
||||
void whenSale1Quality2_afterUpdate_ThenSale0Quality1() {
|
||||
Item[] items = new Item[]{new Item("foo", 1, 2)};
|
||||
GildedRose app = new GildedRose(items);
|
||||
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