public void TestOrderBy() { TestHandler.Handle <DummyContext> ((options) => { using (var ctx = new DummyContext(options)) { ctx.Person.AddRange( new Person() { FirstName = "Carlos", LastName = "Sank", Age = 23 }, new Person() { FirstName = "Mario", LastName = "Sank", Age = 40 }, new Person() { FirstName = "Carla", LastName = "Sank", Age = 11 }, new Person() { FirstName = "Juan", LastName = "Gabriel Montandon", Age = 40 } ); ctx.SaveChanges(); var resultForNames = new QueryPaginatorBasic() .GetAsync <Person> (QueryPersonInfo, BuildRequestParameterOrderBy("FirstName", OrderType.ASC)) .Result; var orderByFirstName = resultForNames.Data.Select(x => x.FirstName).ToArray(); var resultForAge = new QueryPaginatorBasic() .GetAsync <Person> (QueryPersonInfo, BuildRequestParameterOrderBy("Age", OrderType.ASC)) .Result; var orderByAge = resultForAge.Data.Select(x => x.Age).ToArray(); QueryTestHelper.LogToFile <TestQueryPaginator>(orderByAge); Assert.AreEqual("Carla", orderByFirstName[0]); Assert.AreEqual("Carlos", orderByFirstName[1]); Assert.AreEqual("Juan", orderByFirstName[2]); Assert.AreEqual("Mario", orderByFirstName[3]); Assert.AreEqual(11, orderByAge[0]); Assert.AreEqual(23, orderByAge[1]); Assert.AreEqual(40, orderByAge[2]); Assert.AreEqual(40, orderByAge[3]); ClearRecords(ctx); } }); }
private void ClearRecords(DummyContext ctx) { if (ctx.Person.Any()) { ctx.RemoveRange(ctx.Person.ToList()); ctx.SaveChanges(); } }
public void TestPagination() { TestHandler.Handle <DummyContext> ((options) => { using (var ctx = new DummyContext(options)) { ctx.Person.AddRange( new Person() { FirstName = "Carlos", LastName = "Sank", Age = 23 }, new Person() { FirstName = "Mario", LastName = "Sank", Age = 40 }, new Person() { FirstName = "Carla", LastName = "Sank", Age = 11 }, new Person() { FirstName = "Juan", LastName = "Gabriel Montandon", Age = 40 } ); ctx.SaveChanges(); var parameters = new RequestTableParameter() { IsFilterByColumn = true, OrderBy = null, Query = null, Page = 1, PerPage = 2, }; var firstPage = new QueryPaginatorBasic() .GetAsync <Person> (QueryPersonInfo, parameters).Result; Assert.AreEqual(2, firstPage.Data.Count()); parameters.Page = 2; var secondPage = new QueryPaginatorBasic() .GetAsync <Person> (QueryPersonInfo, parameters).Result; Assert.AreEqual(2, firstPage.Data.Count()); ClearRecords(ctx); } }); }
public void TestFilterOperators() { TestHandler.Handle <DummyContext> ((options) => { using (var ctx = new DummyContext(options)) { ctx.Person.AddRange( new Person() { FirstName = "Carlos", LastName = "Sank", Age = 23 }, new Person() { FirstName = "Mario", LastName = "Sank", Age = 40 }, new Person() { FirstName = "Carla", LastName = "Sank", Age = 11 }, new Person() { FirstName = "Juan", LastName = "Gabriel Montandon", Age = 40 } ); ctx.SaveChanges(); //test startwith var containsLetterA = new QueryPaginatorBasic() .GetAsync <Person> (QueryPersonInfo, BuildRequestParameterFilterBy("FirstName", OperatorType.Contains, "A")) //ignoring the case .Result; //test startwith var startWithCAR = new QueryPaginatorBasic() .GetAsync <Person> (QueryPersonInfo, BuildRequestParameterFilterBy("FirstName", OperatorType.StartWith, "Car")) .Result; var montandonRecord = new QueryPaginatorBasic() .GetAsync <Person> (QueryPersonInfo, BuildRequestParameterFilterBy("LastName", OperatorType.EndWith, "Montandon")) .Result; var whereLastNameNotEqualSank = new QueryPaginatorBasic() .GetAsync <Person> (QueryPersonInfo, BuildRequestParameterFilterBy("LastName", OperatorType.NotEquals, "Sank")) .Result; var resultAllSank = new QueryPaginatorBasic() .GetAsync <Person> (QueryPersonInfo, BuildRequestParameterFilterBy("LastName", OperatorType.Equals, "Sank")) .Result; var greaterThan11 = new QueryPaginatorBasic() .GetAsync <Person> (QueryPersonInfo, BuildRequestParameterFilterBy("Age", OperatorType.GreaterThan, 11)) .Result; var over40 = new QueryPaginatorBasic() .GetAsync <Person> (QueryPersonInfo, BuildRequestParameterFilterBy("Age", OperatorType.GreaterOrEqual, 40)) .Result; var lessThan40 = new QueryPaginatorBasic() .GetAsync <Person> (QueryPersonInfo, BuildRequestParameterFilterBy("Age", OperatorType.LessThan, 40)) .Result; var LessOrEqual40 = new QueryPaginatorBasic() .GetAsync <Person> (QueryPersonInfo, BuildRequestParameterFilterBy("Age", OperatorType.LessOrEqual, 40)) .Result; //Assert.AreSame(1,0); Assert.AreEqual(4, containsLetterA.Data.Count()); Assert.AreEqual(1, montandonRecord.Data.Count()); Assert.AreEqual("Gabriel Montandon", montandonRecord.Data.First().LastName); Assert.AreEqual(1, whereLastNameNotEqualSank.Data.Count()); Assert.AreEqual(3, greaterThan11.Data.Count()); Assert.IsFalse(greaterThan11.Data.Any(x => x.FirstName.EqualIgnoreCase("Carla"))); Assert.AreEqual(3, resultAllSank.Data.Count()); Assert.AreEqual(2, over40.Data.Count()); Assert.IsTrue(over40.Data.All(x => x.Age == 40)); Assert.AreEqual(2, lessThan40.Data.Count()); Assert.IsTrue(lessThan40.Data.Any(x => x.FirstName.EqualIgnoreCase("Carlos"))); Assert.IsTrue(lessThan40.Data.Any(x => x.FirstName.EqualIgnoreCase("Carla"))); Assert.AreEqual(4, LessOrEqual40.Data.Count()); Assert.AreEqual(2, startWithCAR.Data.Count()); Assert.IsTrue(startWithCAR.Data.All(p => p.FirstName.StartsWith("Car"))); ClearRecords(ctx); } }); }