From c13dfb967a363c3341394dbde8c911455704c643 Mon Sep 17 00:00:00 2001 From: Radek Date: Wed, 9 May 2018 21:27:54 +0200 Subject: [PATCH] Implement Conjured items logic --- csharp/GildedRose.cs | 6 ++++-- csharp/GildedRoseTest.cs | 36 ++++++++++++++++++++++++++++++++++++ 2 files changed, 40 insertions(+), 2 deletions(-) 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)); + } } }