mirror of
https://github.com/emilybache/GildedRose-Refactoring-Kata.git
synced 2026-02-15 06:21:29 +00:00
Add tests covering basic logic
This commit is contained in:
parent
951ca5f313
commit
2d7048efa8
@ -7,12 +7,219 @@ namespace csharp
|
|||||||
public class GildedRoseTest
|
public class GildedRoseTest
|
||||||
{
|
{
|
||||||
[Test]
|
[Test]
|
||||||
public void foo()
|
public void UpdateQuality_LowersItemQualityBy1()
|
||||||
{
|
{
|
||||||
IList<Item> Items = new List<Item> { new Item { Name = "foo", SellIn = 0, Quality = 0 } };
|
var item = new Item
|
||||||
GildedRose app = new GildedRose(Items);
|
{
|
||||||
app.UpdateQuality();
|
Name = "test",
|
||||||
Assert.AreEqual("fixme", Items[0].Name);
|
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));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user