filter intecerceptor testing.
This commit is contained in:
parent
1fb58a9eb6
commit
eb2b945ecb
57
PoweredSoft.DynamicQuery.Test/FilterInterceptorTests.cs
Normal file
57
PoweredSoft.DynamicQuery.Test/FilterInterceptorTests.cs
Normal file
@ -0,0 +1,57 @@
|
|||||||
|
using PoweredSoft.DynamicQuery.Core;
|
||||||
|
using PoweredSoft.DynamicQuery.Test.Mock;
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using Xunit;
|
||||||
|
|
||||||
|
namespace PoweredSoft.DynamicQuery.Test
|
||||||
|
{
|
||||||
|
public class FilterInterceptorTests
|
||||||
|
{
|
||||||
|
private class MockFilterInterceptorA : IFilterInterceptor
|
||||||
|
{
|
||||||
|
public IFilter InterceptFilter(IFilter filter)
|
||||||
|
{
|
||||||
|
if (filter is ISimpleFilter && ((ISimpleFilter)filter).Path == "CustomerFirstName")
|
||||||
|
return new SimpleFilter { Path = "Customer.FirstName", Type = FilterType.Contains, Value = "David" };
|
||||||
|
|
||||||
|
return filter;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private class MockFilterInterceptorB : IFilterInterceptor
|
||||||
|
{
|
||||||
|
public IFilter InterceptFilter(IFilter filter)
|
||||||
|
{
|
||||||
|
return new SimpleFilter { Path = "Customer.LastName", Type = FilterType.Contains, Value = "Lebee" };
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
[Fact]
|
||||||
|
public void Simple()
|
||||||
|
{
|
||||||
|
MockContextFactory.SeedAndTestContextFor("FilterInterceptorTests_Simple", TestSeeders.SimpleSeedScenario, ctx =>
|
||||||
|
{
|
||||||
|
var queryable = ctx.Orders.AsQueryable();
|
||||||
|
|
||||||
|
var criteria = new QueryCriteria()
|
||||||
|
{
|
||||||
|
Filters = new List<IFilter>
|
||||||
|
{
|
||||||
|
new SimpleFilter { Path = "CustomerFirstName", Value = "David", Type = FilterType.Contains }
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
var query = new QueryHandler();
|
||||||
|
query.AddInterceptor(new MockFilterInterceptorA());
|
||||||
|
var result = query.Execute(queryable, criteria);
|
||||||
|
|
||||||
|
var actual = result.Data;
|
||||||
|
var expected = queryable.Where(t => t.Customer.FirstName == "David").ToList();
|
||||||
|
Assert.Equal(expected, actual);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user