From 498786b31e1a9a96772d8e141712d0c63edcc6f3 Mon Sep 17 00:00:00 2001 From: OKinane <15254824+OKinane@users.noreply.github.com> Date: Sat, 11 Mar 2023 15:08:17 +0100 Subject: [PATCH] add tests --- csharpcore/GildedRoseTests/GildedRoseTest.cs | 145 ++++++++++++++++++- 1 file changed, 143 insertions(+), 2 deletions(-) diff --git a/csharpcore/GildedRoseTests/GildedRoseTest.cs b/csharpcore/GildedRoseTests/GildedRoseTest.cs index 16b7dd95..7d47de0f 100644 --- a/csharpcore/GildedRoseTests/GildedRoseTest.cs +++ b/csharpcore/GildedRoseTests/GildedRoseTest.cs @@ -7,12 +7,153 @@ namespace GildedRoseTests public class GildedRoseTest { [Fact] - public void foo() + 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 } }; + GildedRose app = new GildedRose(Items); + app.UpdateQuality(); + Assert.Equal(2, Items[0].SellIn); + Assert.Equal(4, Items[0].Quality); + } + + [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 } }; + GildedRose app = new GildedRose(Items); + app.UpdateQuality(); + Assert.Equal(-1, Items[0].SellIn); + Assert.Equal(3, Items[0].Quality); + } + + [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 } }; GildedRose app = new GildedRose(Items); app.UpdateQuality(); - Assert.Equal("fixme", Items[0].Name); + Assert.Equal(-1, Items[0].SellIn); + Assert.Equal(0, Items[0].Quality); + } + + [Fact] + public void product_quality_is_never_negative() + { + IList Items = new List { new Item { Name = "foo", SellIn = 3, Quality = 0 } }; + GildedRose app = new GildedRose(Items); + app.UpdateQuality(); + Assert.Equal(2, Items[0].SellIn); + Assert.Equal(0, Items[0].Quality); + } + + [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 } }; + GildedRose app = new GildedRose(Items); + app.UpdateQuality(); + Assert.Equal(2, Items[0].SellIn); + Assert.Equal(9, Items[0].Quality); + } + + [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 } }; + GildedRose app = new GildedRose(Items); + app.UpdateQuality(); + Assert.Equal(-1, Items[0].SellIn); + Assert.Equal(12, Items[0].Quality); + } + + [Fact] + public void aged_brie_quality_do_not_exceed_50() + { + IList Items = new List { new Item { Name = "Aged Brie", SellIn = 3, Quality = 50 } }; + GildedRose app = new GildedRose(Items); + app.UpdateQuality(); + Assert.Equal(2, Items[0].SellIn); + Assert.Equal(50, Items[0].Quality); + } + + [Fact] + public void product_with_initial_quality_55_decrease() + { + IList Items = new List { new Item { Name = "foo", SellIn = 3, Quality = 55 } }; + GildedRose app = new GildedRose(Items); + app.UpdateQuality(); + Assert.Equal(2, Items[0].SellIn); + Assert.Equal(54, Items[0].Quality); + } + + [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 } }; + GildedRose app = new GildedRose(Items); + app.UpdateQuality(); + Assert.Equal(3, Items[0].SellIn); + Assert.Equal(80, Items[0].Quality); + } + + [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 } }; + GildedRose app = new GildedRose(Items); + app.UpdateQuality(); + Assert.Equal(0, Items[0].SellIn); + Assert.Equal(80, Items[0].Quality); + } + + [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 } }; + GildedRose app = new GildedRose(Items); + app.UpdateQuality(); + Assert.Equal(14, Items[0].SellIn); + Assert.Equal(31, Items[0].Quality); + } + + [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 } }; + GildedRose app = new GildedRose(Items); + app.UpdateQuality(); + Assert.Equal(9, Items[0].SellIn); + Assert.Equal(32, Items[0].Quality); + } + + [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 } }; + GildedRose app = new GildedRose(Items); + app.UpdateQuality(); + Assert.Equal(4, Items[0].SellIn); + Assert.Equal(33, Items[0].Quality); + } + + [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 } }; + GildedRose app = new GildedRose(Items); + app.UpdateQuality(); + Assert.Equal(0, Items[0].SellIn); + Assert.Equal(33, Items[0].Quality); + } + + [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 } }; + GildedRose app = new GildedRose(Items); + app.UpdateQuality(); + Assert.Equal(-1, Items[0].SellIn); + Assert.Equal(0, Items[0].Quality); } } }