public void TestInitialize() { controller = new BusinessTripController(); EfStorage storage = new EfStorage(new EfStorageDbInitializerTest()); storage.Database.Initialize(true); }
public async Task Edit_Post_ModelIsInvalid_SetViewBagEmployees() { Mock <BusinessTripService> bmock = new Mock <BusinessTripService>(); bmock.Setup(m => m.EditAsync(It.IsAny <BusinessTripDTO>())).Throws(new ValidationException("", "")); Mock <EmployeeService> emock = new Mock <EmployeeService>(); emock.Setup(m => m.GetAllAsync()).ReturnsAsync(new EmployeeDTO[] { new EmployeeDTO() { Id = 2, LastName = "Петров", FirstName = "Петр", Patronymic = "Петрович", Post = new PostDTO { Department = new DepartmentDTO { DepartmentName = "IT" } } } }); BusinessTripController controller = GetNewBusinessTripController(bmock.Object, emock.Object); ViewResult result = (await controller.Edit(new BusinessTripViewModel())) as ViewResult; SelectListItem item = (result.ViewBag.Employees as SelectList).FirstOrDefault(); Assert.AreEqual("Петров Петр Петрович [IT]", item.Text); Assert.AreEqual("2", item.Value); }
public void Index_AsyncRequest_JsonRequestBehaviorEqualsAllowGet() { Mock <BusinessTripService> mock = new Mock <BusinessTripService>(); BusinessTripController controller = GetNewBusinessTripControllerWithControllerContext(mock.Object, null, true); JsonResult result = controller.Index(null, null) as JsonResult; Assert.AreEqual(JsonRequestBehavior.AllowGet, result.JsonRequestBehavior); }
public async Task Edit_Post_ModelIsValid_RedirectToIndex() { Mock <BusinessTripService> mock = new Mock <BusinessTripService>(); BusinessTripController controller = GetNewBusinessTripController(mock.Object, null); RedirectToRouteResult result = (await controller.Edit(new BusinessTripViewModel())) as RedirectToRouteResult; Assert.AreEqual("Index", result.RouteValues["action"]); }
public void Index_SyncRequest_AsksForIndexView() { Mock <BusinessTripService> mock = new Mock <BusinessTripService>(); BusinessTripController controller = GetNewBusinessTripControllerWithControllerContext(mock.Object, null); ViewResult result = controller.Index(null, null) as ViewResult; Assert.AreEqual("Index", result.ViewName); }
public async Task Delete_Get_ModelIsValid_AsksForDeleteView() { Mock <BusinessTripService> mock = new Mock <BusinessTripService>(); BusinessTripController controller = GetNewBusinessTripController(mock.Object, null); ViewResult result = (await controller.Delete(1)) as ViewResult; Assert.AreEqual("Delete", result.ViewName); }
public async Task DeleteAllConfirmed_Post_RedirectToIndex() { Mock <BusinessTripService> mock = new Mock <BusinessTripService>(); BusinessTripController controller = GetNewBusinessTripController(mock.Object, null); RedirectToRouteResult result = (await controller.DeleteAllConfirmed()) as RedirectToRouteResult; Assert.AreEqual("Index", result.RouteValues["action"]); }
public void DeleteAll_Get_AsksForDeleteAllView() { Mock <BusinessTripService> mock = new Mock <BusinessTripService>(); BusinessTripController controller = GetNewBusinessTripController(mock.Object, null); ViewResult result = controller.DeleteAll() as ViewResult; Assert.AreEqual("DeleteAll", result.ViewName); }
public async Task Edit_Get_ModelIsValid_AsksForEditView() { Mock <BusinessTripService> bmock = new Mock <BusinessTripService>(); Mock <EmployeeService> emock = new Mock <EmployeeService>(); BusinessTripController controller = GetNewBusinessTripController(bmock.Object, emock.Object); ViewResult result = (await controller.Edit(1)) as ViewResult; Assert.AreEqual("Edit", result.ViewName); }
public void CanFilterTripsByProject() { //Arrange Mock <IBusinessTripRepository> mock = new Mock <IBusinessTripRepository>(); mock.Setup(t => t.BusinessTrips).Returns(new BusinessTrip[] { new BusinessTrip { BusinessTripID = 1, Project = new Project { Symbol = "p1" } }, new BusinessTrip { BusinessTripID = 2, Project = new Project { Symbol = "p2" } }, new BusinessTrip { BusinessTripID = 3, Project = new Project { Symbol = "p2" } }, new BusinessTrip { BusinessTripID = 4, Project = new Project { Symbol = "p1" } }, new BusinessTrip { BusinessTripID = 5, Project = new Project { Symbol = "p1" } }, new BusinessTrip { BusinessTripID = 6, Project = new Project { Symbol = "p3" } } }.AsQueryable()); BusinessTripController controller = new BusinessTripController(mock.Object); controller.PageSize = 6; //Act BusinessTripViewModel result1 = controller.List("p1").ViewData.Model as BusinessTripViewModel; BusinessTripViewModel result2 = controller.List("p2").ViewData.Model as BusinessTripViewModel; BusinessTrip[] tripArraP1 = result1.BusinessTrips.ToArray(); BusinessTrip[] tripArraP2 = result2.BusinessTrips.ToArray(); //Assert Assert.Equal(3, tripArraP1.Length); Assert.Equal(2, tripArraP2.Length); Assert.Equal(1, tripArraP1[0].BusinessTripID); }
public async Task Delete_Get_ModelIsInvalid_AsksForErrorView() { Mock <BusinessTripService> mock = new Mock <BusinessTripService>(); mock.Setup(m => m.FindByIdAsync(It.IsAny <int?>())).Throws(new ValidationException("FindByIdAsync method throws Exception", "")); BusinessTripController controller = GetNewBusinessTripController(mock.Object, null); ViewResult result = (await controller.Delete(1)) as ViewResult; Assert.AreEqual("Error", result.ViewName); }
public async Task ExportJson_RedirectToIndex() { Mock <BusinessTripService> mock = new Mock <BusinessTripService>(); BusinessTripController controller = GetNewBusinessTripControllerWithControllerContext(mock.Object, null); FilePathResult result = (await controller.ExportJson()) as FilePathResult; Assert.AreEqual("application/json", result.ContentType); Assert.AreEqual("BusinessTrips.json", result.FileDownloadName); Assert.AreEqual("./DiplomMSSQLApp.WEB/Results/BusinessTrips.json", result.FileName); }
public async Task Create_Get_NoEmployees_AsksForErrorView() { Mock <EmployeeService> mock = new Mock <EmployeeService>(); mock.Setup(m => m.CountAsync()).ReturnsAsync(0); BusinessTripController controller = GetNewBusinessTripController(null, mock.Object); ViewResult result = (await controller.Create()) as ViewResult; Assert.AreEqual("Error", result.ViewName); }
public async Task Edit_Post_ModelIsInvalid_AsksForEditView() { Mock <BusinessTripService> bmock = new Mock <BusinessTripService>(); bmock.Setup(m => m.EditAsync(It.IsAny <BusinessTripDTO>())).Throws(new ValidationException("", "")); Mock <EmployeeService> emock = new Mock <EmployeeService>(); BusinessTripController controller = GetNewBusinessTripController(bmock.Object, emock.Object); ViewResult result = (await controller.Edit(new BusinessTripViewModel())) as ViewResult; Assert.AreEqual("Edit", result.ViewName); }
public async Task Delete_Get_ModelIsInvalid_RetrievesExceptionMessageFromModel() { Mock <BusinessTripService> mock = new Mock <BusinessTripService>(); mock.Setup(m => m.FindByIdAsync(It.IsAny <int?>())).Throws(new ValidationException("FindByIdAsync method throws Exception", "")); BusinessTripController controller = GetNewBusinessTripController(mock.Object, null); ViewResult result = (await controller.Delete(1)) as ViewResult; string[] model = result.ViewData.Model as string[]; Assert.AreEqual("FindByIdAsync method throws Exception", model[0]); }
public void CanSendPaginationViewModel() { //Arrange Mock <IBusinessTripRepository> mock = new Mock <IBusinessTripRepository>(); mock.Setup(t => t.BusinessTrips).Returns(new BusinessTrip[] { new BusinessTrip { BusinessTripID = 1, Destination = new Destination { Name = "d1" } }, new BusinessTrip { BusinessTripID = 2, Destination = new Destination { Name = "d2" } }, new BusinessTrip { BusinessTripID = 3, Destination = new Destination { Name = "d3" } }, new BusinessTrip { BusinessTripID = 4, Destination = new Destination { Name = "d4" } }, new BusinessTrip { BusinessTripID = 5, Destination = new Destination { Name = "d5" } } }.AsQueryable()); BusinessTripController controller = new BusinessTripController(mock.Object); //Act BusinessTripViewModel result = controller.List(null, 2).ViewData.Model as BusinessTripViewModel; //Assert PagingInfo pagingInfo = result.PagingInfo; Assert.Equal(2, pagingInfo.CurrentPage); Assert.Equal(2, pagingInfo.ItemsPerPage); Assert.Equal(5, pagingInfo.TotalItems); Assert.Equal(3, pagingInfo.TotalPages); }
public async Task Delete_Get_ModelIsValid_RetrievesBusinessTripFromModel() { Mock <BusinessTripService> mock = new Mock <BusinessTripService>(); mock.Setup(m => m.FindByIdAsync(It.IsAny <int?>())).ReturnsAsync((int?_id) => new BusinessTripDTO { Id = _id.Value, Name = "02.09.2018_026" }); BusinessTripController controller = GetNewBusinessTripController(mock.Object, null); ViewResult result = (await controller.Delete(2)) as ViewResult; BusinessTripViewModel model = result.ViewData.Model as BusinessTripViewModel; Assert.AreEqual(2, model.Id); Assert.AreEqual("02.09.2018_026", model.Name); }
public async Task Edit_Post_ModelIsInvalid_RetrievesBusinessTripFromModel() { Mock <BusinessTripService> bmock = new Mock <BusinessTripService>(); bmock.Setup(m => m.EditAsync(It.IsAny <BusinessTripDTO>())).Throws(new ValidationException("", "")); Mock <EmployeeService> emock = new Mock <EmployeeService>(); BusinessTripController controller = GetNewBusinessTripController(bmock.Object, emock.Object); ViewResult result = (await controller.Edit(new BusinessTripViewModel { Id = 2, Name = "02.09.2018_026" })) as ViewResult; BusinessTripViewModel model = result.ViewData.Model as BusinessTripViewModel; Assert.AreEqual(2, model.Id); Assert.AreEqual("02.09.2018_026", model.Name); }
public void Index_SyncRequest_RetrievesPageInfoPropertyFromModel() { Mock <BusinessTripService> mock = new Mock <BusinessTripService>(); mock.Setup(m => m.PageInfo).Returns(new PageInfo() { TotalItems = 9, PageSize = 3, PageNumber = 3 }); BusinessTripController controller = GetNewBusinessTripControllerWithControllerContext(mock.Object, null); ViewResult result = controller.Index(null, null) as ViewResult; BusinessTripListViewModel model = result.ViewData.Model as BusinessTripListViewModel; Assert.AreEqual(9, model.PageInfo.TotalItems); Assert.AreEqual(3, model.PageInfo.PageSize); Assert.AreEqual(3, model.PageInfo.PageNumber); Assert.AreEqual(3, model.PageInfo.TotalPages); }
public void Index_AsyncRequest_RetrievesBusinessTripsPropertyFromModel() { Mock <BusinessTripService> mock = new Mock <BusinessTripService>(); mock.Setup(m => m.GetPage(It.IsAny <IEnumerable <BusinessTripDTO> >(), It.IsAny <int>())).Returns(new BusinessTripDTO[] { new BusinessTripDTO { Id = 1, Name = "02.09.2018_026" } }); BusinessTripController controller = GetNewBusinessTripControllerWithControllerContext(mock.Object, null, true); JsonResult result = controller.Index(null, null) as JsonResult; object businessTrip = (result.Data.GetType().GetProperty("BusinessTrips").GetValue(result.Data) as object[])[0]; int id = (int)businessTrip.GetType().GetProperty("Id").GetValue(businessTrip); string code = businessTrip.GetType().GetProperty("Code").GetValue(businessTrip).ToString(); Assert.AreEqual(1, id); Assert.AreEqual("02.09.2018_026", code); }
public void Index_SyncRequest_RetrievesBusinessTripsPropertyFromModel() { Mock <BusinessTripService> mock = new Mock <BusinessTripService>(); mock.Setup(m => m.GetPage(It.IsAny <IEnumerable <BusinessTripDTO> >(), It.IsAny <int>())).Returns(new BusinessTripDTO[] { new BusinessTripDTO { Id = 1, Name = "02.09.2018_026" } }); BusinessTripController controller = GetNewBusinessTripControllerWithControllerContext(mock.Object, null); ViewResult result = controller.Index(null, null) as ViewResult; BusinessTripListViewModel model = result.ViewData.Model as BusinessTripListViewModel; Assert.AreEqual(1, model.BusinessTrips.Count()); Assert.AreEqual(1, model.BusinessTrips.FirstOrDefault().Id); Assert.AreEqual("02.09.2018_026", model.BusinessTrips.FirstOrDefault().Name); }
public async Task Create_Get_ExistsEmployees_SetViewBagEmployees() { Mock <EmployeeService> mock = new Mock <EmployeeService>(); mock.Setup(m => m.CountAsync()).ReturnsAsync(1); mock.Setup(m => m.GetAllAsync()).ReturnsAsync(new EmployeeDTO[] { new EmployeeDTO() { Id = 2, LastName = "Петров", FirstName = "Петр", Patronymic = "Петрович", Post = new PostDTO { Department = new DepartmentDTO { DepartmentName = "IT" } } } }); BusinessTripController controller = GetNewBusinessTripController(null, mock.Object); ViewResult result = (await controller.Create()) as ViewResult; SelectListItem item = (result.ViewBag.Employees as SelectList).FirstOrDefault(); Assert.AreEqual("Петров Петр Петрович [IT]", item.Text); Assert.AreEqual("2", item.Value); }
public void SetUp() { mock = Mock_Repository.CreateMock(); messengerMock = new Mock <IMessenger>(); messengerMock.Setup(m => m.Notify(It.Is <IMessage>(msg => msg.messageType == MessageType.UnknownType))).Verifiable(); messengerMock.Setup(m => m.Notify(It.Is <IMessage>(msg => msg.messageType == MessageType.ACCCancelsConfirmedReportedToADM))).Verifiable(); messengerMock.Setup(m => m.Notify(It.Is <IMessage>(msg => msg.messageType == MessageType.ACCCancelsConfirmedReportedToBTM))).Verifiable(); messengerMock.Setup(m => m.Notify(It.Is <IMessage>(msg => msg.messageType == MessageType.ACCCancelsConfirmedReportedToEMP))).Verifiable(); messengerMock.Setup(m => m.Notify(It.Is <IMessage>(msg => msg.messageType == MessageType.ACCCancelsConfirmedReportedToResponsible))).Verifiable(); messengerMock.Setup(m => m.Notify(It.Is <IMessage>(msg => msg.messageType == MessageType.ACCModifiesConfirmedReportedToADM))).Verifiable(); messengerMock.Setup(m => m.Notify(It.Is <IMessage>(msg => msg.messageType == MessageType.ACCModifiesConfirmedReportedToBTM))).Verifiable(); messengerMock.Setup(m => m.Notify(It.Is <IMessage>(msg => msg.messageType == MessageType.ACCModifiesConfirmedReportedToDIR))).Verifiable(); messengerMock.Setup(m => m.Notify(It.Is <IMessage>(msg => msg.messageType == MessageType.ACCModifiesConfirmedReportedToEMP))).Verifiable(); messengerMock.Setup(m => m.Notify(It.Is <IMessage>(msg => msg.messageType == MessageType.ADMCancelsConfirmedOrConfirmedModifiedToBTM))).Verifiable(); messengerMock.Setup(m => m.Notify(It.Is <IMessage>(msg => msg.messageType == MessageType.ADMCancelsConfirmedOrConfirmedModifiedToDIR))).Verifiable(); messengerMock.Setup(m => m.Notify(It.Is <IMessage>(msg => msg.messageType == MessageType.ADMCancelsConfirmedOrConfirmedModifiedToEMP))).Verifiable(); messengerMock.Setup(m => m.Notify(It.Is <IMessage>(msg => msg.messageType == MessageType.ADMCancelsConfirmedOrConfirmedModifiedToACC))).Verifiable(); messengerMock.Setup(m => m.Notify(It.Is <IMessage>(msg => msg.messageType == MessageType.ADMCancelsConfirmedOrConfirmedModifiedToResponsible))).Verifiable(); messengerMock.Setup(m => m.Notify(It.Is <IMessage>(msg => msg.messageType == MessageType.ADMCancelsRegisteredOrRegisteredModifiedToBTM))).Verifiable(); messengerMock.Setup(m => m.Notify(It.Is <IMessage>(msg => msg.messageType == MessageType.ADMCancelsRegisteredOrRegisteredModifiedToEMP))).Verifiable(); messengerMock.Setup(m => m.Notify(It.Is <IMessage>(msg => msg.messageType == MessageType.ADMCancelsRegisteredOrRegisteredModifiedToACC))).Verifiable(); messengerMock.Setup(m => m.Notify(It.Is <IMessage>(msg => msg.messageType == MessageType.ADMConfirmsPlannedOrRegisteredToBTM))).Verifiable(); messengerMock.Setup(m => m.Notify(It.Is <IMessage>(msg => msg.messageType == MessageType.ADMConfirmsPlannedOrRegisteredToDIR))).Verifiable(); messengerMock.Setup(m => m.Notify(It.Is <IMessage>(msg => msg.messageType == MessageType.ADMConfirmsPlannedOrRegisteredToEMP))).Verifiable(); messengerMock.Setup(m => m.Notify(It.Is <IMessage>(msg => msg.messageType == MessageType.ADMConfirmsPlannedOrRegisteredToResponsible))).Verifiable(); //messengerMock.Setup(m => m.Notify(It.Is<IMessage>(msg => msg.messageType == MessageType.ADMConfirmsPlannedOrRegisteredToACC))).Verifiable(); messengerMock.Setup(m => m.Notify(It.Is <IMessage>(msg => msg.messageType == MessageType.ADMRegistersPlannedOrPlannedModifiedToBTM))).Verifiable(); messengerMock.Setup(m => m.Notify(It.Is <IMessage>(msg => msg.messageType == MessageType.ADMRegistersPlannedOrPlannedModifiedToEMP))).Verifiable(); messengerMock.Setup(m => m.Notify(It.Is <IMessage>(msg => msg.messageType == MessageType.ADMRegistersPlannedOrPlannedModifiedToACC))).Verifiable(); messengerMock.Setup(m => m.Notify(It.Is <IMessage>(msg => msg.messageType == MessageType.ADMReplansRegisteredOrRegisteredModifiedToBTM))).Verifiable(); messengerMock.Setup(m => m.Notify(It.Is <IMessage>(msg => msg.messageType == MessageType.ADMReplansRegisteredOrRegisteredModifiedToACC))).Verifiable(); messengerMock.Setup(m => m.Notify(It.Is <IMessage>(msg => msg.messageType == MessageType.BTMRejectsConfirmedOrConfirmedModifiedToADM))).Verifiable(); messengerMock.Setup(m => m.Notify(It.Is <IMessage>(msg => msg.messageType == MessageType.BTMRejectsConfirmedOrConfirmedModifiedToEMP))).Verifiable(); //messengerMock.Setup(m => m.Notify(It.Is<IMessage>(msg => msg.messageType == MessageType.BTMRejectsConfirmedOrConfirmedModifiedToACC))).Verifiable(); messengerMock.Setup(m => m.Notify(It.Is <IMessage>(msg => msg.messageType == MessageType.BTMRejectsRegisteredOrRegisteredModifiedToADM))).Verifiable(); //messengerMock.Setup(m => m.Notify(It.Is<IMessage>(msg => msg.messageType == MessageType.BTMRejectsRegisteredOrRegisteredModifiedToACC))).Verifiable(); messengerMock.Setup(m => m.Notify(It.Is <IMessage>(msg => msg.messageType == MessageType.BTMReportsConfirmedOrConfirmedModifiedToACC))).Verifiable(); messengerMock.Setup(m => m.Notify(It.Is <IMessage>(msg => msg.messageType == MessageType.BTMReportsConfirmedOrConfirmedModifiedToEMP))).Verifiable(); messengerMock.Setup(m => m.Notify(It.Is <IMessage>(msg => msg.messageType == MessageType.BTMUpdatesConfirmedOrConfirmedModifiedToEMP))).Verifiable(); //messengerMock.Setup(m => m.Notify(It.Is<IMessage>(msg => msg.messageType == MessageType.BTMUpdatesConfirmedOrConfirmedModifiedToACC))).Verifiable(); messengerMock.Setup(m => m.Notify(It.Is <IMessage>(msg => msg.messageType == MessageType.DIRRejectsConfirmedToADM))).Verifiable(); messengerMock.Setup(m => m.Notify(It.Is <IMessage>(msg => msg.messageType == MessageType.DIRRejectsConfirmedToEMP))).Verifiable(); //messengerMock.Setup(m => m.Notify(It.Is<IMessage>(msg => msg.messageType == MessageType.DIRRejectsConfirmedToACC))).Verifiable(); messengerMock.Setup(m => m.Notify(It.Is <IMessage>(msg => msg.messageType == MessageType.ADMCancelsPlannedModifiedToBTM))).Verifiable(); //messengerMock.Setup(m => m.Notify(It.Is<IMessage>(msg => msg.messageType == MessageType.ADMCancelsPlannedModifiedToACC))).Verifiable(); messengerMock.Setup(m => m.Notify(It.Is <IMessage>(msg => msg.messageType == MessageType.ADMConfirmsPlannedOrRegisteredToResponsible))).Verifiable(); messengerMock.Setup(m => m.Notify(It.Is <IMessage>(msg => msg.messageType == MessageType.ADMCancelsConfirmedOrConfirmedModifiedToResponsible))).Verifiable(); messengerMock.Setup(m => m.Notify(It.Is <IMessage>(msg => msg.messageType == MessageType.ACCCancelsConfirmedReportedToResponsible))).Verifiable(); messengerMock.Setup(m => m.Notify(It.Is <IMessage>(msg => msg.messageType == MessageType.BTMRejectsConfirmedOrConfirmedModifiedToResponsible))).Verifiable(); messengerMock.Setup(m => m.Notify(It.Is <IMessage>(msg => msg.messageType == MessageType.DIRRejectsConfirmedToResponsible))).Verifiable(); messengerMock.Setup(m => m.Notify(It.Is <IMessage>(msg => msg.messageType == MessageType.BTMUpdatesConfirmedOrConfirmedModifiedToResponsible))).Verifiable(); messengerMock.Setup(m => m.Notify(It.Is <IMessage>(msg => msg.messageType == MessageType.BTMReportsConfirmedOrConfirmedModifiedToResponsible))).Verifiable(); messengerMock.Setup(m => m.Notify(It.Is <IMessage>(msg => msg.messageType == MessageType.ACCModifiesConfirmedReportedToResponsible))).Verifiable(); HttpContext.Current = new HttpContext(new HttpRequest("", "http://localhost:50616", ""), new HttpResponse(new StringWriter())); var routeCollection = new RouteCollection(); if (RouteTable.Routes.Count == 0) { routeCollection.MapRoute("Default", "Home/Index"); System.Web.Routing.RouteTable.Routes.MapRoute("Default", "Home/Index"); } var fakeHttpContext = new Mock <HttpContextBase>(); var fakeIdentity = new GenericIdentity("User"); var principal = new GenericPrincipal(fakeIdentity, null); fakeHttpContext.Setup(t => t.User).Returns(principal); controllerContext = new Mock <ControllerContext>(); controllerContext.Setup(t => t.HttpContext).Returns(fakeHttpContext.Object); controller = new BusinessTripController(mock.Object, messengerMock.Object); controller.ControllerContext = controllerContext.Object; }
public void CanPaginate() { //Arrange Mock <IBusinessTripRepository> mock = new Mock <IBusinessTripRepository>(); mock.Setup(t => t.BusinessTrips).Returns((new BusinessTrip[] { new BusinessTrip { BusinessTripID = 1, Destination = new Destination { Name = "d1" } }, new BusinessTrip { BusinessTripID = 2, Destination = new Destination { Name = "d2" } }, new BusinessTrip { BusinessTripID = 3, Destination = new Destination { Name = "d3" } }, new BusinessTrip { BusinessTripID = 4, Destination = new Destination { Name = "d4" } }, new BusinessTrip { BusinessTripID = 5, Destination = new Destination { Name = "d5" } }, new BusinessTrip { BusinessTripID = 6, Destination = new Destination { Name = "d6" } }, new BusinessTrip { BusinessTripID = 7, Destination = new Destination { Name = "d7" } }, new BusinessTrip { BusinessTripID = 8, Destination = new Destination { Name = "d8" } }, new BusinessTrip { BusinessTripID = 9, Destination = new Destination { Name = "d9" } }, new BusinessTrip { BusinessTripID = 10, Destination = new Destination { Name = "d10" } }, new BusinessTrip { BusinessTripID = 11, Destination = new Destination { Name = "d11" } } }).AsQueryable <BusinessTrip>()); BusinessTripController controller = new BusinessTripController(mock.Object); controller.PageSize = 10; //Act BusinessTripViewModel firstPageResult = controller.List(null, 1).ViewData.Model as BusinessTripViewModel; BusinessTripViewModel secondPageResult = controller.List(null, 2).ViewData.Model as BusinessTripViewModel; //Assert BusinessTrip[] firstPageTripsArray = firstPageResult.BusinessTrips.ToArray(); BusinessTrip[] secondPageTripsArray = secondPageResult.BusinessTrips.ToArray(); Assert.True(firstPageTripsArray.Length == 10); Assert.True(secondPageTripsArray.Length == 1); Assert.Equal("d1", firstPageTripsArray[0].Destination.Name); Assert.Equal("d10", firstPageTripsArray[9].Destination.Name); Assert.Equal("d11", secondPageTripsArray[0].Destination.Name); }