From 62d94f1a9166794b3b324d99d01e073e15c61f75 Mon Sep 17 00:00:00 2001 From: OKinane <15254824+OKinane@users.noreply.github.com> Date: Sat, 11 Mar 2023 15:29:51 +0100 Subject: [PATCH] add Conjured --- csharpcore/GildedRose/GildedRose.cs | 4 +++ csharpcore/GildedRoseTests/GildedRoseTest.cs | 30 ++++++++++++++++++++ 2 files changed, 34 insertions(+) diff --git a/csharpcore/GildedRose/GildedRose.cs b/csharpcore/GildedRose/GildedRose.cs index 12e5d0f8..a5a6468f 100644 --- a/csharpcore/GildedRose/GildedRose.cs +++ b/csharpcore/GildedRose/GildedRose.cs @@ -26,6 +26,10 @@ namespace GildedRoseKata { SetQuality(i, quantity => quantity + 1, quantity => quantity + 2); } + else if (Items[i].Name == "Conjured") + { + SetQuality(i, quantity => quantity - 2, quantity => quantity - 4); + } else if (Items[i].Name == "Backstage passes to a TAFKAL80ETC concert") { SetQuality(i, quantity => GetNewBackstageQuality(i), q => 0); diff --git a/csharpcore/GildedRoseTests/GildedRoseTest.cs b/csharpcore/GildedRoseTests/GildedRoseTest.cs index 7d47de0f..a7218668 100644 --- a/csharpcore/GildedRoseTests/GildedRoseTest.cs +++ b/csharpcore/GildedRoseTests/GildedRoseTest.cs @@ -155,5 +155,35 @@ namespace GildedRoseTests Assert.Equal(-1, Items[0].SellIn); Assert.Equal(0, Items[0].Quality); } + + [Fact] + public void conjured_quality_decrease_by_two_before_sell_by_date_has_passed() + { + IList Items = new List { new Item { Name = "Conjured", SellIn = 3, Quality = 5 } }; + GildedRose app = new GildedRose(Items); + app.UpdateQuality(); + Assert.Equal(2, Items[0].SellIn); + Assert.Equal(3, Items[0].Quality); + } + + [Fact] + public void conjured_quality_decrease_by_four_after_sell_by_date_has_passed() + { + IList Items = new List { new Item { Name = "Conjured", SellIn = 0, Quality = 5 } }; + GildedRose app = new GildedRose(Items); + app.UpdateQuality(); + Assert.Equal(-1, Items[0].SellIn); + Assert.Equal(1, Items[0].Quality); + } + + [Fact] + public void conjured_with_0_quality_is_still_0_after_sell_by_date_has_passed() + { + IList Items = new List { new Item { Name = "Conjured", SellIn = 0, Quality = 0 } }; + GildedRose app = new GildedRose(Items); + app.UpdateQuality(); + Assert.Equal(-1, Items[0].SellIn); + Assert.Equal(0, Items[0].Quality); + } } }