summaryrefslogtreecommitdiff
path: root/RhSolutions.Api.Tests/ProductQueryModifierTests.cs
blob: 4bc394b5da3eef9df2e7e0a6c9795512ab03c28e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
using Microsoft.AspNetCore.Http;
using Microsoft.Extensions.Primitives;
using RhSolutions.Api.Services;
public abstract class ProductQueryModifierTests
{
	protected ProductQueryModifierFactory _factory;

	[SetUp]
	public void Setup()
	{
		_factory = new ProductQueryModifierFactory();
	}
	public void Execute(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));
	}
}