summaryrefslogtreecommitdiff
path: root/RhSolutions.Api.Tests/ProductQueryModifierTests.cs
blob: 3875777f382896851ae05bf3aee13476c95cd8ed (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
27
using System.Web;
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);		
		var modifier = _factory.GetModifier(productType);
		
		Assert.True(modifier.TryQueryModify(collection, out var actual));
		string? result = HttpUtility.ParseQueryString(actual.ToString())["query"];
		Assert.That(result, Is.EqualTo(modified));
	}
}