Implement Conjured items logic

This commit is contained in:
Radek 2018-05-09 21:27:54 +02:00
parent 2d7048efa8
commit c13dfb967a
2 changed files with 40 additions and 2 deletions

View File

@ -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

View File

@ -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<Item>(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<Item>(new[] { item });
var gRose = new GildedRose(items);
gRose.UpdateQuality();
Assert.That(item.Quality, Is.EqualTo(31));
}
}
}