test: add failing specification tests for Conjured items

Conjured items must degrade twice as fast: -2 before sell-by, -4 after,
never below 0. Red on purpose (TDD) - the legacy code still treats
Conjured as a normal item; they go green once ConjuredItemUpdater lands.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
Artur Goloyad 2026-07-25 20:49:08 +02:00
parent ecf3d7e54a
commit a0066f58cd

View File

@ -162,4 +162,37 @@ public class GildedRoseTest
var item = UpdateOne(BackstagePass, 5, 49);
Assert.Equal(50, item.Quality);
}
// ---------- Conjured items ----------
[Fact]
public void ConjuredItem_BeforeSellBy_QualityDropsByTwo()
{
var item = UpdateOne("Conjured Mana Cake", 3, 6);
Assert.Equal(2, item.SellIn);
Assert.Equal(4, item.Quality);
}
[Fact]
public void ConjuredItem_OnSellByDate_QualityDropsByFour()
{
var item = UpdateOne("Conjured Mana Cake", 0, 6);
Assert.Equal(-1, item.SellIn);
Assert.Equal(2, item.Quality);
}
[Fact]
public void ConjuredItem_AfterSellBy_QualityDropsByFour()
{
var item = UpdateOne("Conjured Mana Cake", -1, 6);
Assert.Equal(-2, item.SellIn);
Assert.Equal(2, item.Quality);
}
[Fact]
public void ConjuredItem_QualityNeverNegative()
{
var item = UpdateOne("Conjured Mana Cake", 0, 3);
Assert.Equal(0, item.Quality);
}
}