2023-10-08 16:17:59 +03:00
|
|
|
using System.Web;
|
2023-09-29 10:07:41 +03:00
|
|
|
using Microsoft.AspNetCore.Http;
|
|
|
|
using Microsoft.Extensions.Primitives;
|
|
|
|
using RhSolutions.Api.Services;
|
2023-10-03 21:57:33 +03:00
|
|
|
public abstract class ProductQueryModifierTests
|
2023-09-29 10:07:41 +03:00
|
|
|
{
|
2023-10-03 21:57:33 +03:00
|
|
|
protected ProductQueryModifierFactory _factory;
|
2023-09-29 10:07:41 +03:00
|
|
|
|
2023-10-01 22:14:47 +03:00
|
|
|
[SetUp]
|
|
|
|
public void Setup()
|
|
|
|
{
|
|
|
|
_factory = new ProductQueryModifierFactory();
|
|
|
|
}
|
2023-10-03 21:57:33 +03:00
|
|
|
public void Execute(string productType, string query, string modified)
|
2023-10-01 22:14:47 +03:00
|
|
|
{
|
|
|
|
Dictionary<string, StringValues> queryPair = new()
|
|
|
|
{
|
|
|
|
["query"] = new StringValues(query)
|
|
|
|
};
|
2023-10-08 16:17:59 +03:00
|
|
|
QueryCollection collection = new(queryPair);
|
2023-10-01 22:14:47 +03:00
|
|
|
var modifier = _factory.GetModifier(productType);
|
2023-10-08 16:17:59 +03:00
|
|
|
|
|
|
|
Assert.True(modifier.TryQueryModify(collection, out var actual));
|
|
|
|
string? result = HttpUtility.ParseQueryString(actual.ToString())["query"];
|
|
|
|
Assert.That(result, Is.EqualTo(modified));
|
2023-10-01 22:14:47 +03:00
|
|
|
}
|
2023-09-29 10:07:41 +03:00
|
|
|
}
|