diff --git a/csharp.xUnit/GildedRose/ConjuredItemUpdater.cs b/csharp.xUnit/GildedRose/ConjuredItemUpdater.cs new file mode 100644 index 00000000..8d6499ef --- /dev/null +++ b/csharp.xUnit/GildedRose/ConjuredItemUpdater.cs @@ -0,0 +1,17 @@ +namespace GildedRoseKata; + +public class ConjuredItemUpdater : ItemUpdaterBase +{ + // Matched by prefix in ItemUpdaterFactory: handles every "Conjured..." item. + public override string Name => ItemUpdaterFactory.ConjuredPrefix; + + public override void Update(Item item) + { + item.Quality = ClampQuality(item.Quality - 2); + item.SellIn -= 1; + if (item.SellIn < 0) + { + item.Quality = ClampQuality(item.Quality - 2); + } + } +} diff --git a/csharp.xUnit/GildedRose/ItemUpdaterFactory.cs b/csharp.xUnit/GildedRose/ItemUpdaterFactory.cs index a6bc365d..02968064 100644 --- a/csharp.xUnit/GildedRose/ItemUpdaterFactory.cs +++ b/csharp.xUnit/GildedRose/ItemUpdaterFactory.cs @@ -31,6 +31,7 @@ public class ItemUpdaterFactory : IItemUpdaterFactory new AgedBrieUpdater(), new SulfurasUpdater(), new BackstagePassUpdater(), + new ConjuredItemUpdater(), }); public IItemUpdater Get(Item item)