mirror of https://github.com/sean-m/McRule.git
Test coverage work.
parent
4eb2e2e6ab
commit
780bf97abe
|
@ -121,6 +121,9 @@ namespace McRule.Tests {
|
|||
RuleOperator = PredicateExpressionPolicyExtensions.RuleOperator.Or
|
||||
};
|
||||
|
||||
|
||||
FailedExpressionGeneratorBase failedGenerator = new FailedExpressionGeneratorBase();
|
||||
|
||||
[SetUp]
|
||||
public void Setup() { }
|
||||
|
||||
|
@ -195,12 +198,24 @@ namespace McRule.Tests {
|
|||
}
|
||||
|
||||
[Test]
|
||||
public void FilterListOfObjectsByMemberCollectionContents() {
|
||||
public void FilterListOfObjectsByMemberCollectionContents()
|
||||
{
|
||||
var generator = new PolicyToExpressionGenerator();
|
||||
var generatedFilter = muggles.GetPredicateExpression<People>(generator);
|
||||
var filteredFolks = things.Where(generatedFilter.Compile());
|
||||
|
||||
var efGenerator = new PolicyToEFExpressionGenerator();
|
||||
var efGeneratedFilter = muggles.GetPredicateExpression<People>(efGenerator);
|
||||
var efFilteredFolks = things.Where(efGeneratedFilter.Compile());
|
||||
|
||||
|
||||
var filter = muggles.GetPredicateExpression<People>()?.Compile();
|
||||
var folks = things.Where(filter);
|
||||
|
||||
Assert.NotNull(folks);
|
||||
Assert.IsTrue(folks.All(x => x.tags.Contains("muggle")));
|
||||
Assert.IsTrue(folks.All(x => filteredFolks.Contains(x)));
|
||||
Assert.IsTrue(folks.All(x => efFilteredFolks.Contains(x)));
|
||||
}
|
||||
|
||||
[Test]
|
||||
|
@ -245,5 +260,18 @@ namespace McRule.Tests {
|
|||
Assert.IsTrue(filter.ToString().Contains("CurrentCulture"));
|
||||
Assert.IsFalse(efFilter.ToString().Contains("CurrentCulture"), "EF safe string comparision contains a CurrentCulture directive, wrong generator used for AddStringPropertyExpression.");
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void BaseThrowsOnPoorlyImplementedGenerator()
|
||||
{
|
||||
Assert.Throws<NotImplementedException>(() => { _ = eans.GetPredicateExpression<People>(failedGenerator); });
|
||||
}
|
||||
}
|
||||
|
||||
internal class FailedExpressionGeneratorBase : ExpressionGeneratorBase
|
||||
{
|
||||
public FailedExpressionGeneratorBase()
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
|
@ -35,8 +35,6 @@ namespace McRule {
|
|||
|
||||
Expression? cachedExpression = null;
|
||||
|
||||
internal (string, string, string) Rule => (TargetType, Property, Value);
|
||||
|
||||
public ExpressionRule() { }
|
||||
|
||||
public ExpressionRule(string TargetType, string Property, string Value) {
|
||||
|
@ -78,7 +76,7 @@ namespace McRule {
|
|||
}
|
||||
|
||||
public string GetFilterString<T>() {
|
||||
return this.GetPredicateExpression<T>()?.ToString() ?? String.Empty;
|
||||
return GetPredicateExpression<T>()?.ToString() ?? String.Empty;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue