mirror of
https://github.com/emilybache/GildedRose-Refactoring-Kata.git
synced 2026-02-16 06:51:27 +00:00
refactor tests
This commit is contained in:
parent
faedbcc44b
commit
cbe93d763b
@ -4,186 +4,187 @@ using GildedRoseKata;
|
|||||||
|
|
||||||
namespace GildedRoseTests
|
namespace GildedRoseTests
|
||||||
{
|
{
|
||||||
|
[System.Diagnostics.CodeAnalysis.SuppressMessage("Style", "IDE1006:Naming Styles", Justification = "<Pending>")]
|
||||||
public class GildedRoseTest
|
public class GildedRoseTest
|
||||||
{
|
{
|
||||||
|
private const string BACKSTAGE_ITEMNAME = "Backstage passes to a TAFKAL80ETC concert";
|
||||||
|
private const string DEFAULT_ITEMNAME = "foo";
|
||||||
|
private const string AGED_BRIE_ITEMNAME = "Aged Brie";
|
||||||
|
private const string SULFURAS_ITEMNAME = "Sulfuras, Hand of Ragnaros";
|
||||||
|
private const string CONJURED_ITEMNAME = "Conjured";
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
public void standard_product_quality_decrease_by_one_before_sell_by_date_has_passed()
|
public void standard_product_quality_decrease_by_one_before_sell_by_date_has_passed()
|
||||||
{
|
{
|
||||||
IList<Item> Items = new List<Item> { new Item { Name = "foo", SellIn = 3, Quality = 5 } };
|
IList<Item> Items = CreateItems(DEFAULT_ITEMNAME, 3, 5);
|
||||||
GildedRose app = new GildedRose(Items);
|
GildedRose app = new GildedRose(Items);
|
||||||
app.UpdateQuality();
|
app.UpdateQuality();
|
||||||
Assert.Equal(2, Items[0].SellIn);
|
AssertItem(Items[0], expectedSellIn: 2, expectedQuality: 4);
|
||||||
Assert.Equal(4, Items[0].Quality);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
public void standard_product_quality_decrease_by_two_after_sell_by_date_has_passed()
|
public void standard_product_quality_decrease_by_two_after_sell_by_date_has_passed()
|
||||||
{
|
{
|
||||||
IList<Item> Items = new List<Item> { new Item { Name = "foo", SellIn = 0, Quality = 5 } };
|
IList<Item> Items = CreateItems(DEFAULT_ITEMNAME, 0, 5);
|
||||||
GildedRose app = new GildedRose(Items);
|
GildedRose app = new GildedRose(Items);
|
||||||
app.UpdateQuality();
|
app.UpdateQuality();
|
||||||
Assert.Equal(-1, Items[0].SellIn);
|
AssertItem(Items[0], expectedSellIn: -1, expectedQuality: 3);
|
||||||
Assert.Equal(3, Items[0].Quality);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
public void standard_product_with_0_quality_is_still_0_after_sell_by_date_has_passed()
|
public void standard_product_with_0_quality_is_still_0_after_sell_by_date_has_passed()
|
||||||
{
|
{
|
||||||
IList<Item> Items = new List<Item> { new Item { Name = "foo", SellIn = 0, Quality = 0 } };
|
IList<Item> Items = CreateItems(DEFAULT_ITEMNAME, 0, 0);
|
||||||
GildedRose app = new GildedRose(Items);
|
GildedRose app = new GildedRose(Items);
|
||||||
app.UpdateQuality();
|
app.UpdateQuality();
|
||||||
Assert.Equal(-1, Items[0].SellIn);
|
AssertItem(Items[0], expectedSellIn: -1, expectedQuality: 0);
|
||||||
Assert.Equal(0, Items[0].Quality);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
public void product_quality_is_never_negative()
|
public void product_quality_is_never_negative()
|
||||||
{
|
{
|
||||||
IList<Item> Items = new List<Item> { new Item { Name = "foo", SellIn = 3, Quality = 0 } };
|
IList<Item> Items = CreateItems(DEFAULT_ITEMNAME, 3, 0);
|
||||||
GildedRose app = new GildedRose(Items);
|
GildedRose app = new GildedRose(Items);
|
||||||
app.UpdateQuality();
|
app.UpdateQuality();
|
||||||
Assert.Equal(2, Items[0].SellIn);
|
AssertItem(Items[0], expectedSellIn: 2, expectedQuality: 0);
|
||||||
Assert.Equal(0, Items[0].Quality);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
public void aged_brie_increase_in_quality_before_sell_by_date_has_passed()
|
public void aged_brie_increase_in_quality_before_sell_by_date_has_passed()
|
||||||
{
|
{
|
||||||
IList<Item> Items = new List<Item> { new Item { Name = "Aged Brie", SellIn = 3, Quality = 8 } };
|
IList<Item> Items = CreateItems(AGED_BRIE_ITEMNAME, 3, 8);
|
||||||
GildedRose app = new GildedRose(Items);
|
GildedRose app = new GildedRose(Items);
|
||||||
app.UpdateQuality();
|
app.UpdateQuality();
|
||||||
Assert.Equal(2, Items[0].SellIn);
|
AssertItem(Items[0], expectedSellIn: 2, expectedQuality: 9);
|
||||||
Assert.Equal(9, Items[0].Quality);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
public void aged_brie_increase_in_quality_after_sell_by_date_has_passed()
|
public void aged_brie_increase_in_quality_after_sell_by_date_has_passed()
|
||||||
{
|
{
|
||||||
IList<Item> Items = new List<Item> { new Item { Name = "Aged Brie", SellIn = 0, Quality = 10 } };
|
IList<Item> Items = CreateItems(AGED_BRIE_ITEMNAME, 0, 10);
|
||||||
GildedRose app = new GildedRose(Items);
|
GildedRose app = new GildedRose(Items);
|
||||||
app.UpdateQuality();
|
app.UpdateQuality();
|
||||||
Assert.Equal(-1, Items[0].SellIn);
|
AssertItem(Items[0], expectedSellIn: -1, expectedQuality: 12);
|
||||||
Assert.Equal(12, Items[0].Quality);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
public void aged_brie_quality_do_not_exceed_50()
|
public void aged_brie_quality_do_not_exceed_50()
|
||||||
{
|
{
|
||||||
IList<Item> Items = new List<Item> { new Item { Name = "Aged Brie", SellIn = 3, Quality = 50 } };
|
IList<Item> Items = CreateItems(AGED_BRIE_ITEMNAME, 3, 50);
|
||||||
GildedRose app = new GildedRose(Items);
|
GildedRose app = new GildedRose(Items);
|
||||||
app.UpdateQuality();
|
app.UpdateQuality();
|
||||||
Assert.Equal(2, Items[0].SellIn);
|
AssertItem(Items[0], expectedSellIn: 2, expectedQuality: 50);
|
||||||
Assert.Equal(50, Items[0].Quality);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
public void product_with_initial_quality_55_decrease()
|
public void product_with_initial_quality_55_decrease()
|
||||||
{
|
{
|
||||||
IList<Item> Items = new List<Item> { new Item { Name = "foo", SellIn = 3, Quality = 55 } };
|
IList<Item> Items = CreateItems(DEFAULT_ITEMNAME, 3, 55);
|
||||||
GildedRose app = new GildedRose(Items);
|
GildedRose app = new GildedRose(Items);
|
||||||
app.UpdateQuality();
|
app.UpdateQuality();
|
||||||
Assert.Equal(2, Items[0].SellIn);
|
AssertItem(Items[0], expectedSellIn: 2, expectedQuality: 54);
|
||||||
Assert.Equal(54, Items[0].Quality);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
public void sulfuras_has_constant_quality_before_sell_by_date_has_passed()
|
public void sulfuras_has_constant_quality_before_sell_by_date_has_passed()
|
||||||
{
|
{
|
||||||
IList<Item> Items = new List<Item> { new Item { Name = "Sulfuras, Hand of Ragnaros", SellIn = 3, Quality = 80 } };
|
IList<Item> Items = CreateItems(SULFURAS_ITEMNAME, 3, 80);
|
||||||
GildedRose app = new GildedRose(Items);
|
GildedRose app = new GildedRose(Items);
|
||||||
app.UpdateQuality();
|
app.UpdateQuality();
|
||||||
Assert.Equal(3, Items[0].SellIn);
|
AssertItem(Items[0], expectedSellIn: 3, expectedQuality: 80);
|
||||||
Assert.Equal(80, Items[0].Quality);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
public void sulfuras_has_constant_quality_after_sell_by_date_has_passed()
|
public void sulfuras_has_constant_quality_after_sell_by_date_has_passed()
|
||||||
{
|
{
|
||||||
IList<Item> Items = new List<Item> { new Item { Name = "Sulfuras, Hand of Ragnaros", SellIn = 0, Quality = 80 } };
|
IList<Item> Items = CreateItems(SULFURAS_ITEMNAME, 0, 80);
|
||||||
GildedRose app = new GildedRose(Items);
|
GildedRose app = new GildedRose(Items);
|
||||||
app.UpdateQuality();
|
app.UpdateQuality();
|
||||||
Assert.Equal(0, Items[0].SellIn);
|
AssertItem(Items[0], expectedSellIn: 0, expectedQuality: 80);
|
||||||
Assert.Equal(80, Items[0].Quality);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
public void backstage_passes_quality_decrease_when_sell_by_date_is_more_then_10()
|
public void backstage_passes_quality_decrease_when_sell_by_date_is_more_then_10()
|
||||||
{
|
{
|
||||||
IList<Item> Items = new List<Item> { new Item { Name = "Backstage passes to a TAFKAL80ETC concert", SellIn = 15, Quality = 30 } };
|
IList<Item> Items = CreateItems(BACKSTAGE_ITEMNAME, 15, 30);
|
||||||
GildedRose app = new GildedRose(Items);
|
GildedRose app = new GildedRose(Items);
|
||||||
app.UpdateQuality();
|
app.UpdateQuality();
|
||||||
Assert.Equal(14, Items[0].SellIn);
|
AssertItem(Items[0], expectedSellIn: 14, expectedQuality: 31);
|
||||||
Assert.Equal(31, Items[0].Quality);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
public void backstage_passes_quality_increase_by_2_when_sell_by_date_is_between_5_and_10()
|
public void backstage_passes_quality_increase_by_2_when_sell_by_date_is_between_5_and_10()
|
||||||
{
|
{
|
||||||
IList<Item> Items = new List<Item> { new Item { Name = "Backstage passes to a TAFKAL80ETC concert", SellIn = 10, Quality = 30 } };
|
IList<Item> Items = CreateItems(BACKSTAGE_ITEMNAME, 10, 30);
|
||||||
GildedRose app = new GildedRose(Items);
|
GildedRose app = new GildedRose(Items);
|
||||||
app.UpdateQuality();
|
app.UpdateQuality();
|
||||||
Assert.Equal(9, Items[0].SellIn);
|
AssertItem(Items[0], expectedSellIn: 9, expectedQuality: 32);
|
||||||
Assert.Equal(32, Items[0].Quality);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
public void backstage_passes_quality_increase_by_3_when_sell_by_date_is_less_than_5()
|
public void backstage_passes_quality_increase_by_3_when_sell_by_date_is_less_than_5()
|
||||||
{
|
{
|
||||||
IList<Item> Items = new List<Item> { new Item { Name = "Backstage passes to a TAFKAL80ETC concert", SellIn = 5, Quality = 30 } };
|
IList<Item> Items = CreateItems(BACKSTAGE_ITEMNAME, 5, 30);
|
||||||
GildedRose app = new GildedRose(Items);
|
GildedRose app = new GildedRose(Items);
|
||||||
app.UpdateQuality();
|
app.UpdateQuality();
|
||||||
Assert.Equal(4, Items[0].SellIn);
|
AssertItem(Items[0], expectedSellIn: 4, expectedQuality: 33);
|
||||||
Assert.Equal(33, Items[0].Quality);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
public void backstage_passes_quality_increase_by_3_when_sell_by_date_is_1()
|
public void backstage_passes_quality_increase_by_3_when_sell_by_date_is_1()
|
||||||
{
|
{
|
||||||
IList<Item> Items = new List<Item> { new Item { Name = "Backstage passes to a TAFKAL80ETC concert", SellIn = 1, Quality = 30 } };
|
IList<Item> Items = CreateItems(BACKSTAGE_ITEMNAME, 1, 30);
|
||||||
GildedRose app = new GildedRose(Items);
|
GildedRose app = new GildedRose(Items);
|
||||||
app.UpdateQuality();
|
app.UpdateQuality();
|
||||||
Assert.Equal(0, Items[0].SellIn);
|
AssertItem(Items[0], expectedSellIn: 0, expectedQuality: 33);
|
||||||
Assert.Equal(33, Items[0].Quality);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
public void backstage_passes_quality_is_0_when_sell_by_date_has_passed()
|
public void backstage_passes_quality_is_0_when_sell_by_date_has_passed()
|
||||||
{
|
{
|
||||||
IList<Item> Items = new List<Item> { new Item { Name = "Backstage passes to a TAFKAL80ETC concert", SellIn = 0, Quality = 30 } };
|
IList<Item> Items = CreateItems(BACKSTAGE_ITEMNAME, 0, 30);
|
||||||
GildedRose app = new GildedRose(Items);
|
GildedRose app = new GildedRose(Items);
|
||||||
app.UpdateQuality();
|
app.UpdateQuality();
|
||||||
Assert.Equal(-1, Items[0].SellIn);
|
AssertItem(Items[0], expectedSellIn: -1, expectedQuality: 0);
|
||||||
Assert.Equal(0, Items[0].Quality);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
public void conjured_quality_decrease_by_two_before_sell_by_date_has_passed()
|
public void conjured_quality_decrease_by_two_before_sell_by_date_has_passed()
|
||||||
{
|
{
|
||||||
IList<Item> Items = new List<Item> { new Item { Name = "Conjured", SellIn = 3, Quality = 5 } };
|
IList<Item> Items = CreateItems(CONJURED_ITEMNAME, 3, 5);
|
||||||
GildedRose app = new GildedRose(Items);
|
GildedRose app = new GildedRose(Items);
|
||||||
app.UpdateQuality();
|
app.UpdateQuality();
|
||||||
Assert.Equal(2, Items[0].SellIn);
|
AssertItem(Items[0], expectedSellIn: 2, expectedQuality: 3);
|
||||||
Assert.Equal(3, Items[0].Quality);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
public void conjured_quality_decrease_by_four_after_sell_by_date_has_passed()
|
public void conjured_quality_decrease_by_four_after_sell_by_date_has_passed()
|
||||||
{
|
{
|
||||||
IList<Item> Items = new List<Item> { new Item { Name = "Conjured", SellIn = 0, Quality = 5 } };
|
IList<Item> Items = CreateItems(CONJURED_ITEMNAME, 0, 5);
|
||||||
GildedRose app = new GildedRose(Items);
|
GildedRose app = new GildedRose(Items);
|
||||||
app.UpdateQuality();
|
app.UpdateQuality();
|
||||||
Assert.Equal(-1, Items[0].SellIn);
|
AssertItem(Items[0], expectedSellIn: -1, expectedQuality: 1);
|
||||||
Assert.Equal(1, Items[0].Quality);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
public void conjured_with_0_quality_is_still_0_after_sell_by_date_has_passed()
|
public void conjured_with_0_quality_is_still_0_after_sell_by_date_has_passed()
|
||||||
{
|
{
|
||||||
IList<Item> Items = new List<Item> { new Item { Name = "Conjured", SellIn = 0, Quality = 0 } };
|
IList<Item> Items = CreateItems(CONJURED_ITEMNAME, 0, 0);
|
||||||
GildedRose app = new GildedRose(Items);
|
GildedRose app = new GildedRose(Items);
|
||||||
app.UpdateQuality();
|
app.UpdateQuality();
|
||||||
Assert.Equal(-1, Items[0].SellIn);
|
AssertItem(Items[0], expectedSellIn: -1, expectedQuality: 0);
|
||||||
Assert.Equal(0, Items[0].Quality);
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private static IList<Item> CreateItems(string name, int sellIn, int quality)
|
||||||
|
{
|
||||||
|
return new List<Item> { new Item { Name = name, SellIn = sellIn, Quality = quality } };
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void AssertItem(Item item, int expectedSellIn, int expectedQuality)
|
||||||
|
{
|
||||||
|
Assert.Equal(expectedSellIn, item.SellIn);
|
||||||
|
Assert.Equal(expectedQuality, item.Quality);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user