From 3946492a1ec296087a9580d01b41f03474664585 Mon Sep 17 00:00:00 2001 From: konradgadecki Date: Tue, 20 Nov 2018 22:23:58 +0100 Subject: [PATCH] added conjucted items handling and tests --- csharp.UnitTests/Tests/GildedRoseTest.cs | 13 +++++++++---- csharp/GildedRose.cs | 18 +++++++++++++++--- 2 files changed, 24 insertions(+), 7 deletions(-) diff --git a/csharp.UnitTests/Tests/GildedRoseTest.cs b/csharp.UnitTests/Tests/GildedRoseTest.cs index fb0cc56e..3120c3a2 100644 --- a/csharp.UnitTests/Tests/GildedRoseTest.cs +++ b/csharp.UnitTests/Tests/GildedRoseTest.cs @@ -64,15 +64,15 @@ namespace csharp.UnitTests.Tests } [Test] - [TestCase(0, 0, 2)] - [TestCase(1, 1, 2)] + [TestCase(0, 0, 2)] + [TestCase(1, 1, 2)] public void UpdateQuality_AgedBrieGetsOlder_AgedBrieIncreasesInQuality(int sellIn, int quality, int expectedResult) { IList items = new List { new Item { Name = "Aged Brie", SellIn = sellIn, Quality = quality } }; var gildedRose = new GildedRose(items); gildedRose.UpdateQuality(); - + Assert.That(items[0].Quality, Is.EqualTo(expectedResult)); } @@ -172,7 +172,12 @@ namespace csharp.UnitTests.Tests } [Test] - [TestCase(-1, 20, 18)] + [TestCase(-1, 20, 16)] + [TestCase(1, 20, 18)] + [TestCase(5, 50, 48)] + [TestCase(5, 55, 53)] + [TestCase(5, 1, 0)] + [TestCase(-5, 1, 0)] public void UpdateQuality_ConjuredGetsOlder_ConjuredQualityDegradesTwoTimesFaster(int sellIn, int quality, int expectedResult) { diff --git a/csharp/GildedRose.cs b/csharp/GildedRose.cs index 13532d29..90b67e38 100644 --- a/csharp/GildedRose.cs +++ b/csharp/GildedRose.cs @@ -11,6 +11,8 @@ namespace csharp _items = items; } + // V - "Conjured" items degrade in Quality twice as fast as normal items + // public void UpdateQuality() { for (var i = 0; i < _items.Count; i++) @@ -22,6 +24,11 @@ namespace csharp if (_items[i].Name != "Sulfuras, Hand of Ragnaros") { _items[i].Quality = _items[i].Quality - 1; + + if (_items[i].Name.StartsWith("Conjured") && _items[i].Quality > 0) + { + _items[i].Quality = _items[i].Quality - 1; + } } } } @@ -29,7 +36,7 @@ namespace csharp { if (_items[i].Quality < 50) { - _items[i].Quality = _items[i].Quality + 1; + _items[i].Quality++; if (_items[i].Name == "Backstage passes to a TAFKAL80ETC concert") { @@ -37,7 +44,7 @@ namespace csharp { if (_items[i].Quality < 50) { - _items[i].Quality = _items[i].Quality + 1; + _items[i].Quality++; } } @@ -45,7 +52,7 @@ namespace csharp { if (_items[i].Quality < 50) { - _items[i].Quality = _items[i].Quality + 1; + _items[i].Quality++; } } } @@ -69,6 +76,11 @@ namespace csharp { _items[i].Quality = _items[i].Quality - 1; } + + if (_items[i].Name.StartsWith("Conjured") && _items[i].Quality > 0) + { + _items[i].Quality = _items[i].Quality - 1; + } } } else