Add tests covering basic logic

This commit is contained in:
Radek 2018-05-09 21:06:31 +02:00
parent 951ca5f313
commit 2d7048efa8

View File

@ -7,12 +7,219 @@ namespace csharp
public class GildedRoseTest
{
[Test]
public void foo()
public void UpdateQuality_LowersItemQualityBy1()
{
IList<Item> Items = new List<Item> { new Item { Name = "foo", SellIn = 0, Quality = 0 } };
GildedRose app = new GildedRose(Items);
app.UpdateQuality();
Assert.AreEqual("fixme", Items[0].Name);
var item = new Item
{
Name = "test",
Quality = 5,
SellIn = 30
};
var items = new List<Item>(new[] { item });
var gRose = new GildedRose(items);
gRose.UpdateQuality();
Assert.That(item.Quality, Is.EqualTo(4));
}
[Test]
public void UpdateQuality_LowersItemSellInBy1()
{
var item = new Item
{
Name = "test",
Quality = 5,
SellIn = 30
};
var items = new List<Item>(new[] { item });
var gRose = new GildedRose(items);
gRose.UpdateQuality();
Assert.That(item.SellIn, Is.EqualTo(29));
}
[Test]
public void UpdateQuality_ItemWithZeroSellIn_LowersItemQualityBy2()
{
var item = new Item
{
Name = "test",
Quality = 5,
SellIn = 0
};
var items = new List<Item>(new[] { item });
var gRose = new GildedRose(items);
gRose.UpdateQuality();
Assert.That(item.Quality, Is.EqualTo(3));
}
[Test]
public void UpdateQuality_ItemWithZeroQuality_StayAtZeroQuality()
{
var item = new Item
{
Name = "test",
Quality = 0,
SellIn = 30
};
var items = new List<Item>(new[] { item });
var gRose = new GildedRose(items);
gRose.UpdateQuality();
Assert.That(item.Quality, Is.EqualTo(0));
}
[Test]
public void UpdateQuality_AgedBrie_IncreaseQualityBy1()
{
var item = new Item
{
Name = "Aged Brie",
Quality = 0,
SellIn = 30
};
var items = new List<Item>(new[] { item });
var gRose = new GildedRose(items);
gRose.UpdateQuality();
Assert.That(item.Quality, Is.EqualTo(1));
}
[Test]
public void UpdateQuality_AgedBrieWith50Quality_StayAt50Quality()
{
var item = new Item
{
Name = "Aged Brie",
Quality = 50,
SellIn = 30
};
var items = new List<Item>(new[] { item });
var gRose = new GildedRose(items);
gRose.UpdateQuality();
Assert.That(item.Quality, Is.EqualTo(50));
}
[Test]
public void UpdateQuality_Sulfuras_DoesNotDecreaseQuality()
{
var item = new Item
{
Name = "Sulfuras, Hand of Ragnaros",
Quality = 80,
SellIn = 30
};
var items = new List<Item>(new[] { item });
var gRose = new GildedRose(items);
gRose.UpdateQuality();
Assert.That(item.Quality, Is.EqualTo(80));
}
[Test]
public void UpdateQuality_Sulfuras_DoesNotDecreaseSellIn()
{
var item = new Item
{
Name = "Sulfuras, Hand of Ragnaros",
Quality = 80,
SellIn = 30
};
var items = new List<Item>(new[] { item });
var gRose = new GildedRose(items);
gRose.UpdateQuality();
Assert.That(item.SellIn, Is.EqualTo(30));
}
[Test]
public void UpdateQuality_BackstagePassesWithMoreThan10DaysLeft_IncreasesQualityBy1()
{
var item = new Item
{
Name = "Backstage passes to a TAFKAL80ETC concert",
Quality = 35,
SellIn = 11
};
var items = new List<Item>(new[] { item });
var gRose = new GildedRose(items);
gRose.UpdateQuality();
Assert.That(item.Quality, Is.EqualTo(36));
}
[Test]
public void UpdateQuality_BackstagePassesWith10DaysLeft_IncreasesQualityBy2()
{
var item = new Item
{
Name = "Backstage passes to a TAFKAL80ETC concert",
Quality = 35,
SellIn = 10
};
var items = new List<Item>(new[] { item });
var gRose = new GildedRose(items);
gRose.UpdateQuality();
Assert.That(item.Quality, Is.EqualTo(37));
}
[Test]
public void UpdateQuality_BackstagePassesWith5DaysLeft_IncreasesQualityBy3()
{
var item = new Item
{
Name = "Backstage passes to a TAFKAL80ETC concert",
Quality = 35,
SellIn = 5
};
var items = new List<Item>(new[] { item });
var gRose = new GildedRose(items);
gRose.UpdateQuality();
Assert.That(item.Quality, Is.EqualTo(38));
}
[Test]
public void UpdateQuality_BackstagePassesWith0DaysLeft_SetQualityToZero()
{
var item = new Item
{
Name = "Backstage passes to a TAFKAL80ETC concert",
Quality = 35,
SellIn = 0
};
var items = new List<Item>(new[] { item });
var gRose = new GildedRose(items);
gRose.UpdateQuality();
Assert.That(item.Quality, Is.EqualTo(0));
}
}
}