From 786dd3c5cda76e3f07f4d27605f0c437abb3a5ba Mon Sep 17 00:00:00 2001 From: Stef Heyenrath Date: Fri, 31 May 2024 08:33:17 +0200 Subject: [PATCH] Refactoring c# projects --- csharp.NUnit/GildedRose/GildedRose.csproj | 10 +- .../Program.cs} | 16 ++- csharp.NUnit/GildedRoseTests/ApprovalTest.cs | 3 +- csharp.xUnit/GildedRose/GildedRose.cs | 102 +++++++++--------- csharp.xUnit/GildedRose/GildedRose.csproj | 13 +-- csharp.xUnit/GildedRose/Item.cs | 15 ++- csharp.xUnit/GildedRose/Program.cs | 93 ++++++++-------- csharp.xUnit/GildedRoseTests/ApprovalTest.cs | 28 +++-- .../GildedRoseTests/GildedRoseTest.cs | 21 ++-- 9 files changed, 149 insertions(+), 152 deletions(-) rename csharp.NUnit/{GildedRoseTests/TextTestFixture.cs => GildedRose/Program.cs} (86%) diff --git a/csharp.NUnit/GildedRose/GildedRose.csproj b/csharp.NUnit/GildedRose/GildedRose.csproj index ae2821ed..b3501052 100644 --- a/csharp.NUnit/GildedRose/GildedRose.csproj +++ b/csharp.NUnit/GildedRose/GildedRose.csproj @@ -1,7 +1,9 @@  - - net8.0 - + + Exe + GildedRoseKata + net8.0 + - + \ No newline at end of file diff --git a/csharp.NUnit/GildedRoseTests/TextTestFixture.cs b/csharp.NUnit/GildedRose/Program.cs similarity index 86% rename from csharp.NUnit/GildedRoseTests/TextTestFixture.cs rename to csharp.NUnit/GildedRose/Program.cs index 89c48e79..97327e26 100644 --- a/csharp.NUnit/GildedRoseTests/TextTestFixture.cs +++ b/csharp.NUnit/GildedRose/Program.cs @@ -1,16 +1,16 @@ using System; using System.Collections.Generic; -using GildedRoseKata; -namespace GildedRoseTests; +namespace GildedRoseKata; -public static class TextTestFixture +public class Program { public static void Main(string[] args) { Console.WriteLine("OMGHAI!"); - var items = new List{ + IList items = new List + { new Item {Name = "+5 Dexterity Vest", SellIn = 10, Quality = 20}, new Item {Name = "Aged Brie", SellIn = 2, Quality = 0}, new Item {Name = "Elixir of the Mongoose", SellIn = 5, Quality = 7}, @@ -34,19 +34,15 @@ public static class TextTestFixture SellIn = 5, Quality = 49 }, + // this conjured item does not work properly yet new Item {Name = "Conjured Mana Cake", SellIn = 3, Quality = 6} }; var app = new GildedRose(items); - int days = 2; - if (args.Length > 0) - { - days = int.Parse(args[0]) + 1; - } - for (var i = 0; i < days; i++) + for (var i = 0; i < 31; i++) { Console.WriteLine("-------- day " + i + " --------"); Console.WriteLine("name, sellIn, quality"); diff --git a/csharp.NUnit/GildedRoseTests/ApprovalTest.cs b/csharp.NUnit/GildedRoseTests/ApprovalTest.cs index 1e63c4d1..dd984cbf 100644 --- a/csharp.NUnit/GildedRoseTests/ApprovalTest.cs +++ b/csharp.NUnit/GildedRoseTests/ApprovalTest.cs @@ -2,6 +2,7 @@ using System; using System.IO; using System.Text; using System.Threading.Tasks; +using GildedRoseKata; using NUnit.Framework; using VerifyNUnit; @@ -16,7 +17,7 @@ public class ApprovalTest Console.SetOut(new StringWriter(fakeOutput)); Console.SetIn(new StringReader($"a{Environment.NewLine}")); - TextTestFixture.Main(new string[] { "30" }); + Program.Main(new string[] { "30" }); var output = fakeOutput.ToString(); return Verifier.Verify(output); diff --git a/csharp.xUnit/GildedRose/GildedRose.cs b/csharp.xUnit/GildedRose/GildedRose.cs index ed7dc428..7ec604b6 100644 --- a/csharp.xUnit/GildedRose/GildedRose.cs +++ b/csharp.xUnit/GildedRose/GildedRose.cs @@ -1,89 +1,89 @@ using System.Collections.Generic; -namespace GildedRoseKata +namespace GildedRoseKata; + +public class GildedRose { - public class GildedRose + private readonly IList _items; + + public GildedRose(IList items) { - IList Items; - public GildedRose(IList Items) - { - this.Items = Items; - } + _items = items; + } - public void UpdateQuality() + public void UpdateQuality() + { + for (var i = 0; i < _items.Count; i++) { - for (var i = 0; i < Items.Count; i++) + if (_items[i].Name != "Aged Brie" && _items[i].Name != "Backstage passes to a TAFKAL80ETC concert") { - if (Items[i].Name != "Aged Brie" && Items[i].Name != "Backstage passes to a TAFKAL80ETC concert") + if (_items[i].Quality > 0) { - if (Items[i].Quality > 0) + if (_items[i].Name != "Sulfuras, Hand of Ragnaros") { - if (Items[i].Name != "Sulfuras, Hand of Ragnaros") - { - Items[i].Quality = Items[i].Quality - 1; - } + _items[i].Quality = _items[i].Quality - 1; } } - else + } + else + { + if (_items[i].Quality < 50) { - if (Items[i].Quality < 50) + _items[i].Quality = _items[i].Quality + 1; + + if (_items[i].Name == "Backstage passes to a TAFKAL80ETC concert") { - Items[i].Quality = Items[i].Quality + 1; - - if (Items[i].Name == "Backstage passes to a TAFKAL80ETC concert") + if (_items[i].SellIn < 11) { - if (Items[i].SellIn < 11) + if (_items[i].Quality < 50) { - if (Items[i].Quality < 50) - { - Items[i].Quality = Items[i].Quality + 1; - } + _items[i].Quality = _items[i].Quality + 1; } + } - if (Items[i].SellIn < 6) + if (_items[i].SellIn < 6) + { + if (_items[i].Quality < 50) { - if (Items[i].Quality < 50) - { - Items[i].Quality = Items[i].Quality + 1; - } + _items[i].Quality = _items[i].Quality + 1; } } } } + } - if (Items[i].Name != "Sulfuras, Hand of Ragnaros") - { - Items[i].SellIn = Items[i].SellIn - 1; - } + if (_items[i].Name != "Sulfuras, Hand of Ragnaros") + { + _items[i].SellIn = _items[i].SellIn - 1; + } - if (Items[i].SellIn < 0) + if (_items[i].SellIn < 0) + { + if (_items[i].Name != "Aged Brie") { - if (Items[i].Name != "Aged Brie") + if (_items[i].Name != "Backstage passes to a TAFKAL80ETC concert") { - if (Items[i].Name != "Backstage passes to a TAFKAL80ETC concert") + if (_items[i].Quality > 0) { - if (Items[i].Quality > 0) + if (_items[i].Name != "Sulfuras, Hand of Ragnaros") { - if (Items[i].Name != "Sulfuras, Hand of Ragnaros") - { - Items[i].Quality = Items[i].Quality - 1; - } + _items[i].Quality = _items[i].Quality - 1; } } - else - { - Items[i].Quality = Items[i].Quality - Items[i].Quality; - } } else { - if (Items[i].Quality < 50) - { - Items[i].Quality = Items[i].Quality + 1; - } + _items[i].Quality = _items[i].Quality - _items[i].Quality; + } + } + else + { + if (_items[i].Quality < 50) + { + _items[i].Quality = _items[i].Quality + 1; } } } } } -} +} \ No newline at end of file diff --git a/csharp.xUnit/GildedRose/GildedRose.csproj b/csharp.xUnit/GildedRose/GildedRose.csproj index e830fad1..848870ae 100644 --- a/csharp.xUnit/GildedRose/GildedRose.csproj +++ b/csharp.xUnit/GildedRose/GildedRose.csproj @@ -1,9 +1,10 @@  - - Exe - net8.0 - GildedRoseKata.Program - + + Exe + GildedRoseKata + net8.0 + GildedRoseKata.Program + - + \ No newline at end of file diff --git a/csharp.xUnit/GildedRose/Item.cs b/csharp.xUnit/GildedRose/Item.cs index 3d87cab4..5ad18dea 100644 --- a/csharp.xUnit/GildedRose/Item.cs +++ b/csharp.xUnit/GildedRose/Item.cs @@ -1,9 +1,8 @@ -namespace GildedRoseKata +namespace GildedRoseKata; + +public class Item { - public class Item - { - public string Name { get; set; } - public int SellIn { get; set; } - public int Quality { get; set; } - } -} + public string Name { get; set; } + public int SellIn { get; set; } + public int Quality { get; set; } +} \ No newline at end of file diff --git a/csharp.xUnit/GildedRose/Program.cs b/csharp.xUnit/GildedRose/Program.cs index 1367fe73..97327e26 100644 --- a/csharp.xUnit/GildedRose/Program.cs +++ b/csharp.xUnit/GildedRose/Program.cs @@ -1,56 +1,57 @@ using System; using System.Collections.Generic; -namespace GildedRoseKata +namespace GildedRoseKata; + +public class Program { - public class Program + public static void Main(string[] args) { - public static void Main(string[] args) + Console.WriteLine("OMGHAI!"); + + IList items = new List { - Console.WriteLine("OMGHAI!"); - - IList Items = new List{ - new Item {Name = "+5 Dexterity Vest", SellIn = 10, Quality = 20}, - new Item {Name = "Aged Brie", SellIn = 2, Quality = 0}, - new Item {Name = "Elixir of the Mongoose", SellIn = 5, Quality = 7}, - new Item {Name = "Sulfuras, Hand of Ragnaros", SellIn = 0, Quality = 80}, - new Item {Name = "Sulfuras, Hand of Ragnaros", SellIn = -1, Quality = 80}, - new Item - { - Name = "Backstage passes to a TAFKAL80ETC concert", - SellIn = 15, - Quality = 20 - }, - new Item - { - Name = "Backstage passes to a TAFKAL80ETC concert", - SellIn = 10, - Quality = 49 - }, - new Item - { - Name = "Backstage passes to a TAFKAL80ETC concert", - SellIn = 5, - Quality = 49 - }, - // this conjured item does not work properly yet - new Item {Name = "Conjured Mana Cake", SellIn = 3, Quality = 6} - }; - - var app = new GildedRose(Items); - - - for (var i = 0; i < 31; i++) + new Item {Name = "+5 Dexterity Vest", SellIn = 10, Quality = 20}, + new Item {Name = "Aged Brie", SellIn = 2, Quality = 0}, + new Item {Name = "Elixir of the Mongoose", SellIn = 5, Quality = 7}, + new Item {Name = "Sulfuras, Hand of Ragnaros", SellIn = 0, Quality = 80}, + new Item {Name = "Sulfuras, Hand of Ragnaros", SellIn = -1, Quality = 80}, + new Item { - Console.WriteLine("-------- day " + i + " --------"); - Console.WriteLine("name, sellIn, quality"); - for (var j = 0; j < Items.Count; j++) - { - System.Console.WriteLine(Items[j].Name + ", " + Items[j].SellIn + ", " + Items[j].Quality); - } - Console.WriteLine(""); - app.UpdateQuality(); + Name = "Backstage passes to a TAFKAL80ETC concert", + SellIn = 15, + Quality = 20 + }, + new Item + { + Name = "Backstage passes to a TAFKAL80ETC concert", + SellIn = 10, + Quality = 49 + }, + new Item + { + Name = "Backstage passes to a TAFKAL80ETC concert", + SellIn = 5, + Quality = 49 + }, + + // this conjured item does not work properly yet + new Item {Name = "Conjured Mana Cake", SellIn = 3, Quality = 6} + }; + + var app = new GildedRose(items); + + + for (var i = 0; i < 31; i++) + { + Console.WriteLine("-------- day " + i + " --------"); + Console.WriteLine("name, sellIn, quality"); + for (var j = 0; j < items.Count; j++) + { + Console.WriteLine(items[j].Name + ", " + items[j].SellIn + ", " + items[j].Quality); } + Console.WriteLine(""); + app.UpdateQuality(); } } -} +} \ No newline at end of file diff --git a/csharp.xUnit/GildedRoseTests/ApprovalTest.cs b/csharp.xUnit/GildedRoseTests/ApprovalTest.cs index ba8e701f..1b68e4a0 100644 --- a/csharp.xUnit/GildedRoseTests/ApprovalTest.cs +++ b/csharp.xUnit/GildedRoseTests/ApprovalTest.cs @@ -1,5 +1,4 @@ - -using GildedRoseKata; +using GildedRoseKata; using System; using System.IO; @@ -10,21 +9,20 @@ using VerifyXunit; using Xunit; -namespace GildedRoseTests +namespace GildedRoseTests; + +public class ApprovalTest { - public class ApprovalTest + [Fact] + public Task ThirtyDays() { - [Fact] - public Task ThirtyDays() - { - var fakeoutput = new StringBuilder(); - Console.SetOut(new StringWriter(fakeoutput)); - Console.SetIn(new StringReader("a\n")); + var fakeoutput = new StringBuilder(); + Console.SetOut(new StringWriter(fakeoutput)); + Console.SetIn(new StringReader("a\n")); - Program.Main(new string[] { "30" }); - var output = fakeoutput.ToString(); + Program.Main(new string[] { "30" }); + var output = fakeoutput.ToString(); - return Verifier.Verify(output); - } + return Verifier.Verify(output); } -} +} \ No newline at end of file diff --git a/csharp.xUnit/GildedRoseTests/GildedRoseTest.cs b/csharp.xUnit/GildedRoseTests/GildedRoseTest.cs index 16b7dd95..63fd7b1b 100644 --- a/csharp.xUnit/GildedRoseTests/GildedRoseTest.cs +++ b/csharp.xUnit/GildedRoseTests/GildedRoseTest.cs @@ -2,17 +2,16 @@ using System.Collections.Generic; using GildedRoseKata; -namespace GildedRoseTests +namespace GildedRoseTests; + +public class GildedRoseTest { - public class GildedRoseTest + [Fact] + public void foo() { - [Fact] - public void foo() - { - 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); - } + 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); } -} +} \ No newline at end of file