diff --git a/csharp/GildedRose.cs b/csharp/GildedRose.cs index 9458a37d..9812fb75 100644 --- a/csharp/GildedRose.cs +++ b/csharp/GildedRose.cs @@ -13,6 +13,8 @@ namespace csharp { foreach (var item in _items) { + var qualityDegradationMultiplier = item.Name == "Conjured Mana Cake" ? 2 : 1; + if (item.Name != "Aged Brie" && item.Name != "Backstage passes to a TAFKAL80ETC concert") { @@ -20,7 +22,7 @@ namespace csharp { if (item.Name != "Sulfuras, Hand of Ragnaros") { - item.Quality = item.Quality - 1; + item.Quality = item.Quality - qualityDegradationMultiplier; } } } @@ -72,7 +74,7 @@ namespace csharp if (item.Name != "Sulfuras, Hand of Ragnaros") { - item.Quality = item.Quality - 1; + item.Quality = item.Quality - qualityDegradationMultiplier; } } else diff --git a/csharp/GildedRoseTest.cs b/csharp/GildedRoseTest.cs index d8ddd99c..ae51bfcd 100644 --- a/csharp/GildedRoseTest.cs +++ b/csharp/GildedRoseTest.cs @@ -221,5 +221,41 @@ namespace csharp Assert.That(item.Quality, Is.EqualTo(0)); } + + [Test] + public void UpdateQuality_ConjuredItemWithSellIn4_DecreasesQualityBy2() + { + var item = new Item + { + Name = "Conjured Mana Cake", + Quality = 35, + SellIn = 4 + }; + + var items = new List(new[] { item }); + var gRose = new GildedRose(items); + + gRose.UpdateQuality(); + + Assert.That(item.Quality, Is.EqualTo(33)); + } + + [Test] + public void UpdateQuality_ConjuredItemWithSellIn0_DecreasesQualityBy4() + { + var item = new Item + { + Name = "Conjured Mana Cake", + Quality = 35, + SellIn = 0 + }; + + var items = new List(new[] { item }); + var gRose = new GildedRose(items); + + gRose.UpdateQuality(); + + Assert.That(item.Quality, Is.EqualTo(31)); + } } }