diff options
author | Serghei Cebotari <serghei@cebotari.ru> | 2023-09-29 10:07:41 +0300 |
---|---|---|
committer | Serghei Cebotari <serghei@cebotari.ru> | 2023-09-29 10:07:41 +0300 |
commit | f44c1f25b3dca11b3225e83edc6f9c8d7e24d8df (patch) | |
tree | 2ea9e7e9c88158e6fccbb3fe08f7870a83f3247c /RhSolutions.Api.Tests/ProductQueryModifierTests.cs | |
parent | 38e5eb039372b28af23b921e8496cd231bb7d36a (diff) |
Add Tests
Diffstat (limited to 'RhSolutions.Api.Tests/ProductQueryModifierTests.cs')
-rw-r--r-- | RhSolutions.Api.Tests/ProductQueryModifierTests.cs | 40 |
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 |