public void Should_Return_Redirects_List_Successfully() { BetterCms.Module.Pages.Models.Redirect redirect1 = TestDataProvider.CreateNewRedirect(); BetterCms.Module.Pages.Models.Redirect redirect2 = TestDataProvider.CreateNewRedirect(); Mock <IRepository> repositoryMock = new Mock <IRepository>(); repositoryMock .Setup(f => f.AsQueryable <BetterCms.Module.Pages.Models.Redirect>()) .Returns(new[] { redirect1, redirect2 }.AsQueryable()); using (var service = new PagesApiContext(Container.BeginLifetimeScope(), repositoryMock.Object)) { var redirects = service.GetRedirects(); Assert.IsNotNull(redirects); Assert.AreEqual(redirects.Items.Count, 2); Assert.AreEqual(redirects.TotalCount, 2); var redirect = redirects.Items.FirstOrDefault(l => redirect1.Id == l.Id); Assert.IsNotNull(redirect); Assert.AreEqual(redirect1.PageUrl, redirect.PageUrl); Assert.AreEqual(redirect1.RedirectUrl, redirect.RedirectUrl); } }
public void Should_Find_Page_And_Return_ViewModel_Successfully() { // DEBUG START var request = new SearchableGridOptions { SearchQuery = "a", PageNumber = 2, PageSize = 3, Column = "PageUrl", Direction = SortDirection.Descending }; var sessionFactory = this.Container.Resolve <ISessionFactoryProvider>(); // DEBUG END SearchableGridViewModel <SiteSettingRedirectViewModel> model; using (var session = sessionFactory.OpenSession()) { BetterCms.Module.Pages.Models.Redirect alias = null; SiteSettingRedirectViewModel modelAlias = null; IQueryOver <BetterCms.Module.Pages.Models.Redirect, BetterCms.Module.Pages.Models.Redirect> query = session.QueryOver(() => alias); // Filter if (!string.IsNullOrWhiteSpace(request.SearchQuery)) { var searchQuery = string.Format("%{0}%", request.SearchQuery); query = query .Where( Restrictions.InsensitiveLike(Projections.Property(() => alias.PageUrl), searchQuery) || Restrictions.InsensitiveLike(Projections.Property(() => alias.RedirectUrl), searchQuery)); } // Select fields query = query .SelectList(select => select .Select(() => alias.Id).WithAlias(() => modelAlias.Id) .Select(() => alias.PageUrl).WithAlias(() => modelAlias.PageUrl) .Select(() => alias.RedirectUrl).WithAlias(() => modelAlias.RedirectUrl) .Select(() => alias.Version).WithAlias(() => modelAlias.Version)) .TransformUsing(Transformers.AliasToBean <SiteSettingRedirectViewModel>()); // Count var count = query.RowCount(); // Sorting and paging query.AddSortingAndPaging(request); // Get results var redirects = query.List <SiteSettingRedirectViewModel>(); model = new SearchableGridViewModel <SiteSettingRedirectViewModel> { GridOptions = request, Items = new CustomPagination <SiteSettingRedirectViewModel>(redirects, request.PageNumber, request.PageSize, count) }; } // DEBUG START Assert.IsNotNull(model); // DEBUG END }