summaryrefslogtreecommitdiff
path: root/RhSolutions.Api.Tests/ProductQueryModifierTests.cs
diff options
context:
space:
mode:
authorSerghei Cebotari <serghei@cebotari.ru>2023-09-29 10:07:41 +0300
committerSerghei Cebotari <serghei@cebotari.ru>2023-09-29 10:07:41 +0300
commitf44c1f25b3dca11b3225e83edc6f9c8d7e24d8df (patch)
tree2ea9e7e9c88158e6fccbb3fe08f7870a83f3247c /RhSolutions.Api.Tests/ProductQueryModifierTests.cs
parent38e5eb039372b28af23b921e8496cd231bb7d36a (diff)
Add Tests
Diffstat (limited to 'RhSolutions.Api.Tests/ProductQueryModifierTests.cs')
-rw-r--r--RhSolutions.Api.Tests/ProductQueryModifierTests.cs40
1 files changed, 40 insertions, 0 deletions
diff --git a/RhSolutions.Api.Tests/ProductQueryModifierTests.cs b/RhSolutions.Api.Tests/ProductQueryModifierTests.cs
new file mode 100644
index 0000000..32bc140
--- /dev/null
+++ b/RhSolutions.Api.Tests/ProductQueryModifierTests.cs
@@ -0,0 +1,40 @@
+using Microsoft.AspNetCore.Http;
+using Microsoft.Extensions.Primitives;
+using RhSolutions.Api.Services;
+
+namespace RhSolutions.Api.Tests;
+
+public class ProductQueryModifierTests
+{
+ private ProductQueryModifierFactory _factory;
+
+ [SetUp]
+ public void Setup()
+ {
+ _factory = new ProductQueryModifierFactory();
+ }
+
+ [TestCase("Монтажная гильза", "Гильза 16", "Монтажная гильза 16")]
+ [TestCase("Монтажная гильза", "Пресс-втулка 20", "Монтажная гильза 20")]
+ public void SleeveTest(string productType, string query, string modified) =>
+ Test(productType, query, modified);
+
+ [TestCase("Тройник RAUTITAN", "Тройник 20-16-16", "Тройник RAUTITAN -PLATINUM 20-16-16")]
+ [TestCase("Тройник RAUTITAN", "Тройник 20x16x16", "Тройник RAUTITAN -PLATINUM 20-16-16")]
+ public void TPieceTest(string productType, string query, string modified) =>
+ Test(productType, query, modified);
+
+ public void Test(string productType, string query, string modified)
+ {
+ Dictionary<string, StringValues> queryPair = new()
+ {
+ ["query"] = new StringValues(query)
+ };
+ QueryCollection collection = new(queryPair);
+ QueryString expected = new($"?query={Uri.EscapeDataString(modified)}");
+ var modifier = _factory.GetModifier(productType);
+ bool result = modifier.TryQueryModify(collection, out var actual);
+ Assert.True(result);
+ Assert.That(actual, Is.EqualTo(expected));
+ }
+} \ No newline at end of file