Test that existing code meets the requirements

This commit is contained in:
Ibrahim Dogrusoz 2023-05-28 15:55:50 +02:00
parent 5ff91ae88e
commit e2c4df0d5c
2 changed files with 99 additions and 14 deletions

View File

@ -7,11 +7,98 @@ import static org.junit.jupiter.api.Assertions.assertEquals;
class GildedRoseTest { class GildedRoseTest {
@Test @Test
void foo() { void givenItem_whenUpdated_thenSellInDecrements() {
Item[] items = new Item[] { new Item("foo", 0, 0) }; Item[] items = new Item[] { new Item("foo", 0, 0) };
GildedRose app = new GildedRose(items); GildedRose app = new GildedRose(items);
app.updateQuality(); app.updateQuality();
assertEquals("fixme", app.items[0].name); assertEquals(-1, app.items[0].sellIn);
} }
@Test
void givenItem_whenUpdated_thenQualityDecrements() {
Item[] items = new Item[] { new Item("foo", 10, 10) };
GildedRose app = new GildedRose(items);
app.updateQuality();
assertEquals(9, app.items[0].quality);
}
@Test
void givenExpiredItem_whenUpdated_thenQualityDecrementsByTwo() {
Item[] items = new Item[] { new Item("foo", 0, 10) };
GildedRose app = new GildedRose(items);
app.updateQuality();
assertEquals(8, app.items[0].quality);
}
@Test
void givenItemWithZeroQuality_whenUpdated_thenQualityIsNeverNegative() {
Item[] items = new Item[] { new Item("foo", 0, 0) };
GildedRose app = new GildedRose(items);
app.updateQuality();
assertEquals(0, app.items[0].quality);
}
@Test
void givenAgedBrie_whenUpdated_thenQualityIncrements() {
Item[] items = new Item[] { new Item("Aged Brie", 10, 10) };
GildedRose app = new GildedRose(items);
app.updateQuality();
assertEquals(11, app.items[0].quality);
}
@Test
void givenAgedBrieWithQuality50_whenUpdated_thenQualityRemainsTheSame() {
Item[] items = new Item[] { new Item("Aged Brie", 10, 50) };
GildedRose app = new GildedRose(items);
app.updateQuality();
assertEquals(50, app.items[0].quality);
}
@Test
void givenLegendaryItem_whenUpdated_thenSellInStaysTheSame() {
Item[] items = new Item[] { new Item("Sulfuras, Hand of Ragnaros", 0, 80) };
GildedRose app = new GildedRose(items);
app.updateQuality();
assertEquals(0, app.items[0].sellIn);
}
@Test
void givenLegendaryItem_whenUpdated_thenQualityStaysTheSame() {
Item[] items = new Item[] { new Item("Sulfuras, Hand of Ragnaros", 0, 80) };
GildedRose app = new GildedRose(items);
app.updateQuality();
assertEquals(80, app.items[0].quality);
}
@Test
void givenBackstagePasses_whenUpdated_thenQualityIncrements() {
Item[] items = new Item[] { new Item("Backstage passes to a TAFKAL80ETC concert", 20, 10) };
GildedRose app = new GildedRose(items);
app.updateQuality();
assertEquals(11, app.items[0].quality);
}
@Test
void givenBackstagePassesWith10DaysToConcert_whenUpdated_thenQualityIncrementsByTwo() {
Item[] items = new Item[] { new Item("Backstage passes to a TAFKAL80ETC concert", 10, 10) };
GildedRose app = new GildedRose(items);
app.updateQuality();
assertEquals(12, app.items[0].quality);
}
@Test
void givenBackstagePassesWith5DaysToConcert_whenUpdated_thenQualityIncrementsByThree() {
Item[] items = new Item[] { new Item("Backstage passes to a TAFKAL80ETC concert", 5, 10) };
GildedRose app = new GildedRose(items);
app.updateQuality();
assertEquals(13, app.items[0].quality);
}
@Test
void givenBackstagePassesAfterTheConcert_whenUpdated_thenQualityIsZero() {
Item[] items = new Item[] { new Item("Backstage passes to a TAFKAL80ETC concert", 0, 10) };
GildedRose app = new GildedRose(items);
app.updateQuality();
assertEquals(0, app.items[0].quality);
}
} }

View File

@ -2,19 +2,17 @@ package com.gildedrose;
public class TexttestFixture { public class TexttestFixture {
public static void main(String[] args) { public static void main(String[] args) {
System.out.println("OMGHAI!");
Item[] items = new Item[] { Item[] items = new Item[]{
new Item("+5 Dexterity Vest", 10, 20), // new Item("+5 Dexterity Vest", 10, 20), //
new Item("Aged Brie", 2, 0), // new Item("Aged Brie", 2, 0), //
new Item("Elixir of the Mongoose", 5, 7), // new Item("Elixir of the Mongoose", 5, 7), //
new Item("Sulfuras, Hand of Ragnaros", 0, 80), // new Item("Sulfuras, Hand of Ragnaros", 0, 80), //
new Item("Sulfuras, Hand of Ragnaros", -1, 80), new Item("Sulfuras, Hand of Ragnaros", -1, 80),
new Item("Backstage passes to a TAFKAL80ETC concert", 15, 20), new Item("Backstage passes to a TAFKAL80ETC concert", 15, 20),
new Item("Backstage passes to a TAFKAL80ETC concert", 10, 49), new Item("Backstage passes to a TAFKAL80ETC concert", 10, 49),
new Item("Backstage passes to a TAFKAL80ETC concert", 5, 49), new Item("Backstage passes to a TAFKAL80ETC concert", 5, 49)
// this conjured item does not work properly yet };
new Item("Conjured Mana Cake", 3, 6) };
GildedRose app = new GildedRose(items); GildedRose app = new GildedRose(items);