diff options
author | Serghei Cebotari <serghei@cebotari.ru> | 2023-12-30 14:43:25 +0300 |
---|---|---|
committer | Serghei Cebotari <serghei@cebotari.ru> | 2023-12-30 14:43:25 +0300 |
commit | fb0fcda84cefc79a19d8cfcb784f78abc7b61ffb (patch) | |
tree | 54bbc6272df5a58bd45edb4205a46ff030d66969 /RhSolutions.Api.Tests | |
parent | 72465f655ff29b59a845d0886951d020e785ee1e (diff) |
Implement KeyedServices
Diffstat (limited to 'RhSolutions.Api.Tests')
-rw-r--r-- | RhSolutions.Api.Tests/BypassQueryModifier.cs | 10 | ||||
-rw-r--r-- | RhSolutions.Api.Tests/ProductQueryModifierFactory.cs | 76 | ||||
-rw-r--r-- | RhSolutions.Api.Tests/ProductQueryModifierTests.cs | 4 |
3 files changed, 89 insertions, 1 deletions
diff --git a/RhSolutions.Api.Tests/BypassQueryModifier.cs b/RhSolutions.Api.Tests/BypassQueryModifier.cs new file mode 100644 index 0000000..d6c8367 --- /dev/null +++ b/RhSolutions.Api.Tests/BypassQueryModifier.cs @@ -0,0 +1,10 @@ +namespace RhSolutions.Api.Tests; + +public sealed class BypassQueryModifier : IProductQueryModifier +{ + public bool TryQueryModify(string query, out string queryModified) + { + queryModified = string.Empty; + return false; + } +}
\ No newline at end of file diff --git a/RhSolutions.Api.Tests/ProductQueryModifierFactory.cs b/RhSolutions.Api.Tests/ProductQueryModifierFactory.cs new file mode 100644 index 0000000..da8ea09 --- /dev/null +++ b/RhSolutions.Api.Tests/ProductQueryModifierFactory.cs @@ -0,0 +1,76 @@ +using RhSolutions.QueryModifiers.DrinkingWaterHeatingFittings; +using RhSolutions.QueryModifiers.DrinkingWaterHeatingPipes; + +namespace RhSolutions.Api.Tests; + +public class ProductQueryModifierFactory +{ + public IProductQueryModifier GetModifier(string productTypeName) + { + switch (productTypeName) + { + case "Монтажная гильза": + return new Sleeve(); + case "Желоб": + return new SupportingClip(); + case "Тройник RAUTITAN": + return new TPiece(); + case "Тройник RAUTITAN резьбовой наружный": + return new ThreadTPieceExternal(); + case "Тройник RAUTITAN резьбовой внутренний": + return new ThreadTPieceInternal(); + case "Переходник на наружную резьбу": + return new AdapterExternal(); + case "Переходник на внутреннюю резьбу": + return new AdapterInternal(); + case "Переходник с накидной гайкой": + return new AdapterScrewcap(); + case "Угольник с наружной резьбой": + return new ThreadElbowExternal(); + case "Угольник с внутренней резьбой": + return new ThreadElbowInternal(); + case "Угольник настенный наружный": + return new ThreadElbowWallExternal(); + case "Угольник настенный внутренний": + return new ThreadElbowWallInternal(); + case "Проточный настенный угольник": + return new ThreadElbowDoubleWallInternal(); + case "Угольник с накидной гайкой": + return new ScrewcapElbow(); + case "Муфта соединительная": + return new Coupling(); + case "Угольник RAUTITAN": + return new Elbow(); + case "Фиксатор поворота отопление": + return new BendFormerHeating(); + case "Фиксатор поворота водоснабжение": + return new BendFormerSanitary(); + case "Трубка Г-образная": + return new ConnectionBend(); + case "Трубка Т-образная": + return new ConnectionTee(); + case "Резьбозажимное flex": + return new EuroconeFlex(); + case "Резьбозажимное stabil": + return new EuroconeStabil(); + case "Переходник на евроконус": + return new EuroconeAdapter(); + case "Резьбозажимное для трубки": + return new EuroconeConnectionBend(); + case "Ниппель": + return new Nippel(); + case "Заглушка труб RAUTITAN": + return new DummyPlug(); + case "Flex": + return new FlexPipe(); + case "Pink": + return new PinkPipe(); + case "Stabil": + return new StabilPipe(); + case "Black": + return new BlackPipe(); + default: + return new BypassQueryModifier(); + } + } +} diff --git a/RhSolutions.Api.Tests/ProductQueryModifierTests.cs b/RhSolutions.Api.Tests/ProductQueryModifierTests.cs index b9f0e06..16c6054 100644 --- a/RhSolutions.Api.Tests/ProductQueryModifierTests.cs +++ b/RhSolutions.Api.Tests/ProductQueryModifierTests.cs @@ -1,3 +1,5 @@ +namespace RhSolutions.Api.Tests; + public abstract class ProductQueryModifierTests { protected ProductQueryModifierFactory _factory; @@ -10,7 +12,7 @@ public abstract class ProductQueryModifierTests public void Execute(string productType, string query, string expected) { var modifier = _factory.GetModifier(productType); - Assert.True(modifier.TryQueryModify(query, out var actual)); + Assert.That(modifier.TryQueryModify(query, out var actual), Is.True); Assert.That(actual, Is.EqualTo(expected)); } }
\ No newline at end of file |