From 26870381a4aa14776142433bfb721cab3aa2d8e7 Mon Sep 17 00:00:00 2001 From: Artur Goloyad Date: Sun, 26 Jul 2026 11:46:39 +0200 Subject: [PATCH] refactor: organize updaters into Interfaces/Factories/Strategies Pure file move + namespace alignment, no logic changes: - Interfaces/ IItemUpdater, IItemUpdaterFactory (GildedRoseKata.Interfaces) - Factories/ ItemUpdaterFactory incl. static Default() (GildedRoseKata.Factories) - Strategies/ ItemUpdaterBase + the 5 concrete updaters (GildedRoseKata.Strategies) GildedRose.cs changes only in usings; Item.cs and Program.cs untouched. Full suite 24/24 green; approval snapshot byte-identical. Co-Authored-By: Claude Fable 5 --- .../GildedRose/{ => Factories}/ItemUpdaterFactory.cs | 5 ++++- csharp.xUnit/GildedRose/GildedRose.cs | 3 +++ csharp.xUnit/GildedRose/{ => Interfaces}/IItemUpdater.cs | 2 +- .../GildedRose/{ => Interfaces}/IItemUpdaterFactory.cs | 2 +- csharp.xUnit/GildedRose/{ => Strategies}/AgedBrieUpdater.cs | 2 +- .../GildedRose/{ => Strategies}/BackstagePassUpdater.cs | 2 +- .../GildedRose/{ => Strategies}/ConjuredItemUpdater.cs | 4 +++- csharp.xUnit/GildedRose/{ => Strategies}/ItemUpdaterBase.cs | 4 +++- .../GildedRose/{ => Strategies}/NormalItemUpdater.cs | 2 +- csharp.xUnit/GildedRose/{ => Strategies}/SulfurasUpdater.cs | 2 +- 10 files changed, 19 insertions(+), 9 deletions(-) rename csharp.xUnit/GildedRose/{ => Factories}/ItemUpdaterFactory.cs (93%) rename csharp.xUnit/GildedRose/{ => Interfaces}/IItemUpdater.cs (88%) rename csharp.xUnit/GildedRose/{ => Interfaces}/IItemUpdaterFactory.cs (66%) rename csharp.xUnit/GildedRose/{ => Strategies}/AgedBrieUpdater.cs (90%) rename csharp.xUnit/GildedRose/{ => Strategies}/BackstagePassUpdater.cs (92%) rename csharp.xUnit/GildedRose/{ => Strategies}/ConjuredItemUpdater.cs (86%) rename csharp.xUnit/GildedRose/{ => Strategies}/ItemUpdaterBase.cs (82%) rename csharp.xUnit/GildedRose/{ => Strategies}/NormalItemUpdater.cs (90%) rename csharp.xUnit/GildedRose/{ => Strategies}/SulfurasUpdater.cs (86%) diff --git a/csharp.xUnit/GildedRose/ItemUpdaterFactory.cs b/csharp.xUnit/GildedRose/Factories/ItemUpdaterFactory.cs similarity index 93% rename from csharp.xUnit/GildedRose/ItemUpdaterFactory.cs rename to csharp.xUnit/GildedRose/Factories/ItemUpdaterFactory.cs index 02968064..fb2090df 100644 --- a/csharp.xUnit/GildedRose/ItemUpdaterFactory.cs +++ b/csharp.xUnit/GildedRose/Factories/ItemUpdaterFactory.cs @@ -1,7 +1,10 @@ using System; using System.Collections.Generic; -namespace GildedRoseKata; +using GildedRoseKata.Interfaces; +using GildedRoseKata.Strategies; + +namespace GildedRoseKata.Factories; public class ItemUpdaterFactory : IItemUpdaterFactory { diff --git a/csharp.xUnit/GildedRose/GildedRose.cs b/csharp.xUnit/GildedRose/GildedRose.cs index 9b37db99..78da22b1 100644 --- a/csharp.xUnit/GildedRose/GildedRose.cs +++ b/csharp.xUnit/GildedRose/GildedRose.cs @@ -1,5 +1,8 @@ using System.Collections.Generic; +using GildedRoseKata.Factories; +using GildedRoseKata.Interfaces; + namespace GildedRoseKata; public class GildedRose diff --git a/csharp.xUnit/GildedRose/IItemUpdater.cs b/csharp.xUnit/GildedRose/Interfaces/IItemUpdater.cs similarity index 88% rename from csharp.xUnit/GildedRose/IItemUpdater.cs rename to csharp.xUnit/GildedRose/Interfaces/IItemUpdater.cs index c7a0a823..432707ed 100644 --- a/csharp.xUnit/GildedRose/IItemUpdater.cs +++ b/csharp.xUnit/GildedRose/Interfaces/IItemUpdater.cs @@ -1,4 +1,4 @@ -namespace GildedRoseKata; +namespace GildedRoseKata.Interfaces; public interface IItemUpdater { diff --git a/csharp.xUnit/GildedRose/IItemUpdaterFactory.cs b/csharp.xUnit/GildedRose/Interfaces/IItemUpdaterFactory.cs similarity index 66% rename from csharp.xUnit/GildedRose/IItemUpdaterFactory.cs rename to csharp.xUnit/GildedRose/Interfaces/IItemUpdaterFactory.cs index 66855fe6..6e4ffa27 100644 --- a/csharp.xUnit/GildedRose/IItemUpdaterFactory.cs +++ b/csharp.xUnit/GildedRose/Interfaces/IItemUpdaterFactory.cs @@ -1,4 +1,4 @@ -namespace GildedRoseKata; +namespace GildedRoseKata.Interfaces; public interface IItemUpdaterFactory { diff --git a/csharp.xUnit/GildedRose/AgedBrieUpdater.cs b/csharp.xUnit/GildedRose/Strategies/AgedBrieUpdater.cs similarity index 90% rename from csharp.xUnit/GildedRose/AgedBrieUpdater.cs rename to csharp.xUnit/GildedRose/Strategies/AgedBrieUpdater.cs index 955f2d96..9d5eb8e6 100644 --- a/csharp.xUnit/GildedRose/AgedBrieUpdater.cs +++ b/csharp.xUnit/GildedRose/Strategies/AgedBrieUpdater.cs @@ -1,4 +1,4 @@ -namespace GildedRoseKata; +namespace GildedRoseKata.Strategies; public class AgedBrieUpdater : ItemUpdaterBase { diff --git a/csharp.xUnit/GildedRose/BackstagePassUpdater.cs b/csharp.xUnit/GildedRose/Strategies/BackstagePassUpdater.cs similarity index 92% rename from csharp.xUnit/GildedRose/BackstagePassUpdater.cs rename to csharp.xUnit/GildedRose/Strategies/BackstagePassUpdater.cs index c1c1f4af..d69b1cb9 100644 --- a/csharp.xUnit/GildedRose/BackstagePassUpdater.cs +++ b/csharp.xUnit/GildedRose/Strategies/BackstagePassUpdater.cs @@ -1,4 +1,4 @@ -namespace GildedRoseKata; +namespace GildedRoseKata.Strategies; public class BackstagePassUpdater : ItemUpdaterBase { diff --git a/csharp.xUnit/GildedRose/ConjuredItemUpdater.cs b/csharp.xUnit/GildedRose/Strategies/ConjuredItemUpdater.cs similarity index 86% rename from csharp.xUnit/GildedRose/ConjuredItemUpdater.cs rename to csharp.xUnit/GildedRose/Strategies/ConjuredItemUpdater.cs index 8d6499ef..37a38807 100644 --- a/csharp.xUnit/GildedRose/ConjuredItemUpdater.cs +++ b/csharp.xUnit/GildedRose/Strategies/ConjuredItemUpdater.cs @@ -1,4 +1,6 @@ -namespace GildedRoseKata; +using GildedRoseKata.Factories; + +namespace GildedRoseKata.Strategies; public class ConjuredItemUpdater : ItemUpdaterBase { diff --git a/csharp.xUnit/GildedRose/ItemUpdaterBase.cs b/csharp.xUnit/GildedRose/Strategies/ItemUpdaterBase.cs similarity index 82% rename from csharp.xUnit/GildedRose/ItemUpdaterBase.cs rename to csharp.xUnit/GildedRose/Strategies/ItemUpdaterBase.cs index a973b8d4..dda6eadd 100644 --- a/csharp.xUnit/GildedRose/ItemUpdaterBase.cs +++ b/csharp.xUnit/GildedRose/Strategies/ItemUpdaterBase.cs @@ -1,6 +1,8 @@ using System; -namespace GildedRoseKata; +using GildedRoseKata.Interfaces; + +namespace GildedRoseKata.Strategies; public abstract class ItemUpdaterBase : IItemUpdater { diff --git a/csharp.xUnit/GildedRose/NormalItemUpdater.cs b/csharp.xUnit/GildedRose/Strategies/NormalItemUpdater.cs similarity index 90% rename from csharp.xUnit/GildedRose/NormalItemUpdater.cs rename to csharp.xUnit/GildedRose/Strategies/NormalItemUpdater.cs index 5f35bf3a..ce31f837 100644 --- a/csharp.xUnit/GildedRose/NormalItemUpdater.cs +++ b/csharp.xUnit/GildedRose/Strategies/NormalItemUpdater.cs @@ -1,4 +1,4 @@ -namespace GildedRoseKata; +namespace GildedRoseKata.Strategies; public class NormalItemUpdater : ItemUpdaterBase { diff --git a/csharp.xUnit/GildedRose/SulfurasUpdater.cs b/csharp.xUnit/GildedRose/Strategies/SulfurasUpdater.cs similarity index 86% rename from csharp.xUnit/GildedRose/SulfurasUpdater.cs rename to csharp.xUnit/GildedRose/Strategies/SulfurasUpdater.cs index 66ee371e..78a23233 100644 --- a/csharp.xUnit/GildedRose/SulfurasUpdater.cs +++ b/csharp.xUnit/GildedRose/Strategies/SulfurasUpdater.cs @@ -1,4 +1,4 @@ -namespace GildedRoseKata; +namespace GildedRoseKata.Strategies; public class SulfurasUpdater : ItemUpdaterBase {