public void ConventionPageSpec_Returns_Filtered() { //Arrange using (var uow = CreateMemoryUoW(typeof(Author))) { uow.Add(new Author(1, "A.A.Author")); uow.Add(new Author(2, "A.B.Author")); uow.Add(new Author(3, "C.D.Author")); uow.Add(new Author(4, "C.D.Author")); uow.Add(new Author(5, "E.E.Author")); var qrit = new PageQriteria <AuthorDto> { Subject = new AuthorDto { Name = "C" }, OrderBy = "Name", PageNo = 2, PageSize = 2 }; var spec = new ConventionPagedSpec <Author, AuthorDto>(); //LinqSpec<Author>.ByConvention(qrit); //Act var actual = spec.Query(uow.Linq, qrit) .Cast <Author>(); //Assert Assert.IsTrue(actual.All(a => a.Name.StartsWith(qrit.Subject.Name))); } }
public void ConventionPageSpec_Returns_Ordered() { //Arrange using (var uow = CreateMemoryUoW(typeof(Author))) { uow.Add(new Author(1, "A.D.Author")); uow.Add(new Author(2, "A.B.Author")); uow.Add(new Author(3, "B.A.Author")); uow.Add(new Author(4, "A.C.Author")); uow.Add(new Author(5, "B.E.Author")); var qrit = new PageQriteria <AuthorDto> { Subject = new AuthorDto { Name = "A" }, OrderBy = "Name", PageNo = 2, PageSize = 2 }; var spec = new ConventionPagedSpec <Author, AuthorDto>(); //Act var actual = spec.Query(uow.Linq, qrit) .Cast <Author>(); //Assert Assert.IsTrue(actual.All(a => a.Name.StartsWith(qrit.Subject.Name))); CollectionAssert.AreEqual(actual.ToArray(), uow.Linq.Query <Author>().Where(a => a.Name.StartsWith(qrit.Subject.Name)).OrderBy(a => a.Name).ToArray()); } }
public void PageSpec_Returns_FilteredAndSortedByConvention() { //Arrange const int authorCount = 25; using (var UoWStub = Stub.CreateMemoryUoW(typeof(Author)) .Add( authorCount, (i) => new Author(i, "A" + (i % 2 == 0 ? "=" : "-") + Convert.ToString(i).PadLeft(2, '0')) )) { var linqProvider = UoWStub.Linq; var qrit = new PageQriteria <AuthorDto> { PageNo = 3, PageSize = 5, OrderBy = "Name", Subject = new AuthorDto { Name = "A" } }; var expected = linqProvider.Query <Author>() .Where(a => a.Name.StartsWith(qrit.Subject.Name)) .OrderBy(a => a.Name) .ToArray(); var spec = new ConventionPagedSpec <Author, AuthorDto>(); var stopWatch = new Stopwatch(); //Act stopWatch.Start(); var actual = spec.Query(linqProvider, qrit) .Cast <Author>() .ToArray(); stopWatch.Stop(); //Assert CollectionAssert.AreEqual(expected, actual); Assert.IsTrue(stopWatch.ElapsedMilliseconds < 100); } }