Added OR flitering for values and ability to escape delimiters. Fixes #8, #21, and #41

This commit is contained in:
Biarity
2018-11-16 18:08:25 +10:00
parent f9c7fb4cb0
commit faa363edbb
8 changed files with 75 additions and 34 deletions

View File

@@ -10,6 +10,7 @@ namespace SieveUnitTests.Entities
[Sieve(CanFilter = true, CanSort = true)]
public DateTimeOffset DateCreated { get; set; } = DateTimeOffset.UtcNow;
[Sieve(CanFilter = true)]
public string Text { get; set; }
}
}

View File

@@ -69,7 +69,7 @@ namespace SieveUnitTests
new Comment() {
Id = 2,
DateCreated = DateTimeOffset.UtcNow,
Text = "This is a brand new comment."
Text = "This is a brand new comment. ()"
},
}.AsQueryable();
}
@@ -148,7 +148,7 @@ namespace SieveUnitTests
Filters = "LikeCount==50",
};
Console.WriteLine(model.GetFiltersParsed()[0].Value);
Console.WriteLine(model.GetFiltersParsed()[0].Values);
Console.WriteLine(model.GetFiltersParsed()[0].Operator);
Console.WriteLine(model.GetFiltersParsed()[0].OperatorParsed);
@@ -260,7 +260,7 @@ namespace SieveUnitTests
}
[TestMethod]
public void OrFilteringWorks()
public void OrNameFilteringWorks()
{
var model = new SieveModel()
{
@@ -275,5 +275,32 @@ namespace SieveUnitTests
Assert.AreEqual(1, resultCount);
Assert.AreEqual(3, entry.Id);
}
[TestMethod]
public void OrValueFilteringWorks()
{
var model = new SieveModel()
{
Filters = "Title==C|D",
};
var result = _processor.Apply(model, _posts);
Assert.AreEqual(2, result.Count());
Assert.IsTrue(result.Any(p => p.Id == 2));
Assert.IsTrue(result.Any(p => p.Id == 3));
}
[TestMethod]
public void OrValueFilteringWorks2()
{
var model = new SieveModel()
{
Filters = "Text@=(|)",
};
var result = _processor.Apply(model, _comments);
Assert.AreEqual(1, result.Count());
Assert.AreEqual(2, result.FirstOrDefault().Id);
}
}
}