From cbe93d763b7332a3c04b6ee2c6e719c389abe790 Mon Sep 17 00:00:00 2001 From: OKinane <15254824+OKinane@users.noreply.github.com> Date: Sat, 11 Mar 2023 15:59:59 +0100 Subject: [PATCH] refactor tests --- csharpcore/GildedRoseTests/GildedRoseTest.cs | 109 ++++++++++--------- 1 file changed, 55 insertions(+), 54 deletions(-) diff --git a/csharpcore/GildedRoseTests/GildedRoseTest.cs b/csharpcore/GildedRoseTests/GildedRoseTest.cs index a7218668..7d13df4e 100644 --- a/csharpcore/GildedRoseTests/GildedRoseTest.cs +++ b/csharpcore/GildedRoseTests/GildedRoseTest.cs @@ -4,186 +4,187 @@ using GildedRoseKata; namespace GildedRoseTests { + [System.Diagnostics.CodeAnalysis.SuppressMessage("Style", "IDE1006:Naming Styles", Justification = "")] 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] public void standard_product_quality_decrease_by_one_before_sell_by_date_has_passed() { - IList Items = new List { new Item { Name = "foo", SellIn = 3, Quality = 5 } }; + IList Items = CreateItems(DEFAULT_ITEMNAME, 3, 5); GildedRose app = new GildedRose(Items); app.UpdateQuality(); - Assert.Equal(2, Items[0].SellIn); - Assert.Equal(4, Items[0].Quality); + AssertItem(Items[0], expectedSellIn: 2, expectedQuality: 4); } [Fact] public void standard_product_quality_decrease_by_two_after_sell_by_date_has_passed() { - IList Items = new List { new Item { Name = "foo", SellIn = 0, Quality = 5 } }; + IList Items = CreateItems(DEFAULT_ITEMNAME, 0, 5); GildedRose app = new GildedRose(Items); app.UpdateQuality(); - Assert.Equal(-1, Items[0].SellIn); - Assert.Equal(3, Items[0].Quality); + AssertItem(Items[0], expectedSellIn: -1, expectedQuality: 3); } [Fact] public void standard_product_with_0_quality_is_still_0_after_sell_by_date_has_passed() { - IList Items = new List { new Item { Name = "foo", SellIn = 0, Quality = 0 } }; + IList Items = CreateItems(DEFAULT_ITEMNAME, 0, 0); GildedRose app = new GildedRose(Items); app.UpdateQuality(); - Assert.Equal(-1, Items[0].SellIn); - Assert.Equal(0, Items[0].Quality); + AssertItem(Items[0], expectedSellIn: -1, expectedQuality: 0); } [Fact] public void product_quality_is_never_negative() { - IList Items = new List { new Item { Name = "foo", SellIn = 3, Quality = 0 } }; + IList Items = CreateItems(DEFAULT_ITEMNAME, 3, 0); GildedRose app = new GildedRose(Items); app.UpdateQuality(); - Assert.Equal(2, Items[0].SellIn); - Assert.Equal(0, Items[0].Quality); + AssertItem(Items[0], expectedSellIn: 2, expectedQuality: 0); } [Fact] public void aged_brie_increase_in_quality_before_sell_by_date_has_passed() { - IList Items = new List { new Item { Name = "Aged Brie", SellIn = 3, Quality = 8 } }; + IList Items = CreateItems(AGED_BRIE_ITEMNAME, 3, 8); GildedRose app = new GildedRose(Items); app.UpdateQuality(); - Assert.Equal(2, Items[0].SellIn); - Assert.Equal(9, Items[0].Quality); + AssertItem(Items[0], expectedSellIn: 2, expectedQuality: 9); } [Fact] public void aged_brie_increase_in_quality_after_sell_by_date_has_passed() { - IList Items = new List { new Item { Name = "Aged Brie", SellIn = 0, Quality = 10 } }; + IList Items = CreateItems(AGED_BRIE_ITEMNAME, 0, 10); GildedRose app = new GildedRose(Items); app.UpdateQuality(); - Assert.Equal(-1, Items[0].SellIn); - Assert.Equal(12, Items[0].Quality); + AssertItem(Items[0], expectedSellIn: -1, expectedQuality: 12); } [Fact] public void aged_brie_quality_do_not_exceed_50() { - IList Items = new List { new Item { Name = "Aged Brie", SellIn = 3, Quality = 50 } }; + IList Items = CreateItems(AGED_BRIE_ITEMNAME, 3, 50); GildedRose app = new GildedRose(Items); app.UpdateQuality(); - Assert.Equal(2, Items[0].SellIn); - Assert.Equal(50, Items[0].Quality); + AssertItem(Items[0], expectedSellIn: 2, expectedQuality: 50); } [Fact] public void product_with_initial_quality_55_decrease() { - IList Items = new List { new Item { Name = "foo", SellIn = 3, Quality = 55 } }; + IList Items = CreateItems(DEFAULT_ITEMNAME, 3, 55); GildedRose app = new GildedRose(Items); app.UpdateQuality(); - Assert.Equal(2, Items[0].SellIn); - Assert.Equal(54, Items[0].Quality); + AssertItem(Items[0], expectedSellIn: 2, expectedQuality: 54); } [Fact] public void sulfuras_has_constant_quality_before_sell_by_date_has_passed() { - IList Items = new List { new Item { Name = "Sulfuras, Hand of Ragnaros", SellIn = 3, Quality = 80 } }; + IList Items = CreateItems(SULFURAS_ITEMNAME, 3, 80); GildedRose app = new GildedRose(Items); app.UpdateQuality(); - Assert.Equal(3, Items[0].SellIn); - Assert.Equal(80, Items[0].Quality); + AssertItem(Items[0], expectedSellIn: 3, expectedQuality: 80); } [Fact] public void sulfuras_has_constant_quality_after_sell_by_date_has_passed() { - IList Items = new List { new Item { Name = "Sulfuras, Hand of Ragnaros", SellIn = 0, Quality = 80 } }; + IList Items = CreateItems(SULFURAS_ITEMNAME, 0, 80); GildedRose app = new GildedRose(Items); app.UpdateQuality(); - Assert.Equal(0, Items[0].SellIn); - Assert.Equal(80, Items[0].Quality); + AssertItem(Items[0], expectedSellIn: 0, expectedQuality: 80); } [Fact] public void backstage_passes_quality_decrease_when_sell_by_date_is_more_then_10() { - IList Items = new List { new Item { Name = "Backstage passes to a TAFKAL80ETC concert", SellIn = 15, Quality = 30 } }; + IList Items = CreateItems(BACKSTAGE_ITEMNAME, 15, 30); GildedRose app = new GildedRose(Items); app.UpdateQuality(); - Assert.Equal(14, Items[0].SellIn); - Assert.Equal(31, Items[0].Quality); + AssertItem(Items[0], expectedSellIn: 14, expectedQuality: 31); } [Fact] public void backstage_passes_quality_increase_by_2_when_sell_by_date_is_between_5_and_10() { - IList Items = new List { new Item { Name = "Backstage passes to a TAFKAL80ETC concert", SellIn = 10, Quality = 30 } }; + IList Items = CreateItems(BACKSTAGE_ITEMNAME, 10, 30); GildedRose app = new GildedRose(Items); app.UpdateQuality(); - Assert.Equal(9, Items[0].SellIn); - Assert.Equal(32, Items[0].Quality); + AssertItem(Items[0], expectedSellIn: 9, expectedQuality: 32); } [Fact] public void backstage_passes_quality_increase_by_3_when_sell_by_date_is_less_than_5() { - IList Items = new List { new Item { Name = "Backstage passes to a TAFKAL80ETC concert", SellIn = 5, Quality = 30 } }; + IList Items = CreateItems(BACKSTAGE_ITEMNAME, 5, 30); GildedRose app = new GildedRose(Items); app.UpdateQuality(); - Assert.Equal(4, Items[0].SellIn); - Assert.Equal(33, Items[0].Quality); + AssertItem(Items[0], expectedSellIn: 4, expectedQuality: 33); } [Fact] public void backstage_passes_quality_increase_by_3_when_sell_by_date_is_1() { - IList Items = new List { new Item { Name = "Backstage passes to a TAFKAL80ETC concert", SellIn = 1, Quality = 30 } }; + IList Items = CreateItems(BACKSTAGE_ITEMNAME, 1, 30); GildedRose app = new GildedRose(Items); app.UpdateQuality(); - Assert.Equal(0, Items[0].SellIn); - Assert.Equal(33, Items[0].Quality); + AssertItem(Items[0], expectedSellIn: 0, expectedQuality: 33); } [Fact] public void backstage_passes_quality_is_0_when_sell_by_date_has_passed() { - IList Items = new List { new Item { Name = "Backstage passes to a TAFKAL80ETC concert", SellIn = 0, Quality = 30 } }; + IList Items = CreateItems(BACKSTAGE_ITEMNAME, 0, 30); GildedRose app = new GildedRose(Items); app.UpdateQuality(); - Assert.Equal(-1, Items[0].SellIn); - Assert.Equal(0, Items[0].Quality); + AssertItem(Items[0], expectedSellIn: -1, expectedQuality: 0); } [Fact] public void conjured_quality_decrease_by_two_before_sell_by_date_has_passed() { - IList Items = new List { new Item { Name = "Conjured", SellIn = 3, Quality = 5 } }; + IList Items = CreateItems(CONJURED_ITEMNAME, 3, 5); GildedRose app = new GildedRose(Items); app.UpdateQuality(); - Assert.Equal(2, Items[0].SellIn); - Assert.Equal(3, Items[0].Quality); + AssertItem(Items[0], expectedSellIn: 2, expectedQuality: 3); } [Fact] public void conjured_quality_decrease_by_four_after_sell_by_date_has_passed() { - IList Items = new List { new Item { Name = "Conjured", SellIn = 0, Quality = 5 } }; + IList Items = CreateItems(CONJURED_ITEMNAME, 0, 5); GildedRose app = new GildedRose(Items); app.UpdateQuality(); - Assert.Equal(-1, Items[0].SellIn); - Assert.Equal(1, Items[0].Quality); + AssertItem(Items[0], expectedSellIn: -1, expectedQuality: 1); } [Fact] public void conjured_with_0_quality_is_still_0_after_sell_by_date_has_passed() { - IList Items = new List { new Item { Name = "Conjured", SellIn = 0, Quality = 0 } }; + IList Items = CreateItems(CONJURED_ITEMNAME, 0, 0); GildedRose app = new GildedRose(Items); app.UpdateQuality(); - Assert.Equal(-1, Items[0].SellIn); - Assert.Equal(0, Items[0].Quality); + AssertItem(Items[0], expectedSellIn: -1, expectedQuality: 0); + } + + + private static IList CreateItems(string name, int sellIn, int quality) + { + return new List { 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); } } }