mirror of
https://github.com/emilybache/GildedRose-Refactoring-Kata.git
synced 2026-02-14 14:11:20 +00:00
test: add JUnit test for GildedRose updateQuality logic
- Adds tests covering all item types (Aged Brie, Backstage passes, Sulfuras, normal items), - Edge cases (quality never below 0 or above 50), and sellIn behavior. - Includes tests for quality changes before and after sellIn expiration.
This commit is contained in:
parent
58a991fe27
commit
dc8c7ae6e1
@ -1,17 +1,83 @@
|
|||||||
package com.gildedrose;
|
package com.gildedrose;
|
||||||
|
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
|
import static org.junit.jupiter.api.Assertions.*;
|
||||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
|
||||||
|
|
||||||
class GildedRoseTest {
|
class GildedRoseTest {
|
||||||
|
|
||||||
@Test
|
private Item createItem(String name, int sellIn, int quality) {
|
||||||
void foo() {
|
return new Item(name, sellIn, quality);
|
||||||
Item[] items = new Item[] { new Item("foo", 0, 0) };
|
|
||||||
GildedRose app = new GildedRose(items);
|
|
||||||
app.updateQuality();
|
|
||||||
assertEquals("fixme", app.items[0].name);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void normaleItem_QualitaetSinktProTag() {
|
||||||
|
Item item = createItem("Normaler Gegenstand", 10, 20);
|
||||||
|
GildedRose app = new GildedRose(new Item[]{item});
|
||||||
|
app.updateQuality();
|
||||||
|
assertEquals(19, item.quality); // -1 Qualität
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void normaleItem_QualitaetSinktDoppeltNachVerfall() {
|
||||||
|
Item item = createItem("Normaler Gegenstand", 0, 20);
|
||||||
|
GildedRose app = new GildedRose(new Item[]{item});
|
||||||
|
app.updateQuality();
|
||||||
|
assertEquals(18, item.quality); // -2 Qualität
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void agedBrie_QualitaetSteigt() {
|
||||||
|
Item item = createItem("Aged Brie", 10, 20);
|
||||||
|
GildedRose app = new GildedRose(new Item[]{item});
|
||||||
|
app.updateQuality();
|
||||||
|
assertEquals(21, item.quality); // +1 Qualität
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void agedBrie_QualitaetSteigtSchnellerNachVerfall() {
|
||||||
|
Item item = createItem("Aged Brie", -1, 20);
|
||||||
|
GildedRose app = new GildedRose(new Item[]{item});
|
||||||
|
app.updateQuality();
|
||||||
|
assertEquals(22, item.quality); // +2 Qualität
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void backstagePass_QualitaetSteigtUm3Bei5Tagen() {
|
||||||
|
Item item = createItem("Backstage passes to a TAFKAL80ETC concert", 5, 20);
|
||||||
|
GildedRose app = new GildedRose(new Item[]{item});
|
||||||
|
app.updateQuality();
|
||||||
|
assertEquals(23, item.quality); // +3 Qualität
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void backstagePass_QualitaetFälltAuf0NachKonzert() {
|
||||||
|
Item item = createItem("Backstage passes to a TAFKAL80ETC concert", 0, 20);
|
||||||
|
GildedRose app = new GildedRose(new Item[]{item});
|
||||||
|
app.updateQuality();
|
||||||
|
assertEquals(0, item.quality); // Qualität = 0
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void sulfuras_QualitaetUnverändert() {
|
||||||
|
Item item = createItem("Sulfuras, Hand of Ragnaros", 10, 80);
|
||||||
|
GildedRose app = new GildedRose(new Item[]{item});
|
||||||
|
app.updateQuality();
|
||||||
|
assertEquals(80, item.quality); // Qualität bleibt 80
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void qualitaetNieÜber50() {
|
||||||
|
Item item = createItem("Aged Brie", 10, 50);
|
||||||
|
GildedRose app = new GildedRose(new Item[]{item});
|
||||||
|
app.updateQuality();
|
||||||
|
assertEquals(50, item.quality); // Maximalwert 50
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void qualitaetNieUnter0() {
|
||||||
|
Item item = createItem("Normaler Gegenstand", 10, 0);
|
||||||
|
GildedRose app = new GildedRose(new Item[]{item});
|
||||||
|
app.updateQuality();
|
||||||
|
assertEquals(0, item.quality); // Minimalwert 0
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user