public void RenderVisitEditPartialWithCorrectViewModel_WhenPassedIdExists() { // Arrange var visitsServiceMock = new Mock <IVisitsService>(); var municipalitiesServiceMock = new Mock <IMunicipalitiesService>(); var usersServiceMock = new Mock <IUserService>(); var pageServiceMock = new Mock <IPageService <Visit> >(); var controller = new VisitsController(visitsServiceMock.Object, municipalitiesServiceMock.Object, usersServiceMock.Object, pageServiceMock.Object); var testId = Guid.NewGuid(); var visitModel = new Visit() { Id = testId, Date = new DateTime(2017, 10, 18), UserName = "******", Description = "Test description", }; visitsServiceMock.Setup(v => v.GetById(It.IsAny <Guid>())).Returns(visitModel); // Act & Assert controller .WithCallTo(c => c.Edit(testId)) .ShouldRenderPartialView("_VisitEditPartial") .WithModel <VisitDetailsViewModel>(vm => { Assert.AreEqual(visitModel.Id, vm.Id); Assert.AreEqual(visitModel.Date, vm.Date); Assert.AreEqual(visitModel.Description, vm.Description); Assert.AreEqual(visitModel.CreatedOn, vm.CreatedOn); Assert.AreEqual(visitModel.UserName, vm.NurseName); Assert.IsNull(vm.LastModifiedOn); }); }
public void RenderViewResultWithCorrectViewModel_WhenCalled() { // Arrange var visitsServiceMock = new Mock <IVisitsService>(); var municipalitiesServiceMock = new Mock <IMunicipalitiesService>(); var usersServiceMock = new Mock <IUserService>(); var pageServiceMock = new Mock <IPageService <Visit> >(); var controller = new VisitsController(visitsServiceMock.Object, municipalitiesServiceMock.Object, usersServiceMock.Object, pageServiceMock.Object); var municipalities = new List <Municipality>() { new Municipality { Name = "MVM", Towns = new List <Town>() } }; municipalitiesServiceMock.Setup(m => m.GetAll()).Returns(municipalities); var expectedVM = new MunicipalityViewModel() { Name = "MVM", Towns = new List <string>() }; // Act & Assert controller .WithCallTo(c => c.Index(1, 9, "CreatedOn")) .ShouldRenderDefaultView() .WithModel <SearchViewModel>(vm => { Assert.IsTrue(vm.Municipalities.Any(m => m.Name == expectedVM.Name)); }); }
public void RenderDefaultView_WhenCalled() { // Arrange var visitsServiceMock = new Mock <IVisitsService>(); var municipalitiesServiceMock = new Mock <IMunicipalitiesService>(); var usersServiceMock = new Mock <IUserService>(); var pageServiceMock = new Mock <IPageService <Visit> >(); var controller = new VisitsController(visitsServiceMock.Object, municipalitiesServiceMock.Object, usersServiceMock.Object, pageServiceMock.Object); // Act & Assert controller .WithCallTo(c => c.Add()) .ShouldRenderDefaultView(); }
public void RendersVisitsListPartialView_WhenCalled() { // Arrange var visitsServiceMock = new Mock <IVisitsService>(); var municipalitiesServiceMock = new Mock <IMunicipalitiesService>(); var usersServiceMock = new Mock <IUserService>(); var pageServiceMock = new Mock <IPageService <Visit> >(); var controller = new VisitsController(visitsServiceMock.Object, municipalitiesServiceMock.Object, usersServiceMock.Object, pageServiceMock.Object); pageServiceMock.Setup(vs => vs.GetPage(It.IsAny <short>(), It.IsAny <short>(), It.IsAny <string>())).Returns(new List <Visit>()); pageServiceMock.Setup(vs => vs.Count).Returns(5); // Act & Assert controller .WithCallTo(c => c.List(1, 9, "")) .ShouldRenderPartialView("_VisitsListPartial"); }
public void RedirectToIndexWithTempDataMessage_WhenPostedValidViewModel() { // Arrange var visitsServiceMock = new Mock <IVisitsService>(); var municipalitiesServiceMock = new Mock <IMunicipalitiesService>(); var usersServiceMock = new Mock <IUserService>(); var pageServiceMock = new Mock <IPageService <Visit> >(); var controller = new VisitsController(visitsServiceMock.Object, municipalitiesServiceMock.Object, usersServiceMock.Object, pageServiceMock.Object); var visitDetailsModel = new VisitDetailsViewModel(); // Act & Assert controller .WithCallTo(c => c.Add(visitDetailsModel)) .ShouldRedirectTo("Index"); controller.ShouldHaveTempDataProperty("message", "Visit added successfully"); }
public void RenderVisitDetailsPartialWithInvalidViewModel_WhenPostedInvalidViewModel() { // Arrange var visitsServiceMock = new Mock <IVisitsService>(); var municipalitiesServiceMock = new Mock <IMunicipalitiesService>(); var usersServiceMock = new Mock <IUserService>(); var pageServiceMock = new Mock <IPageService <Visit> >(); var controller = new VisitsController(visitsServiceMock.Object, municipalitiesServiceMock.Object, usersServiceMock.Object, pageServiceMock.Object); controller.ModelState.AddModelError("isValid", "view model not valid"); var visitDetailsModel = new VisitDetailsViewModel(); // Act & Assert controller .WithCallTo(c => c.Add(visitDetailsModel)) .ShouldRenderDefaultView() .WithModel(visitDetailsModel); }
public void RenderVisitDetailsPartialWithCorrectViewModel_WhenPostedValidViewModel() { // Arrange var visitsServiceMock = new Mock <IVisitsService>(); var municipalitiesServiceMock = new Mock <IMunicipalitiesService>(); var usersServiceMock = new Mock <IUserService>(); var pageServiceMock = new Mock <IPageService <Visit> >(); var controller = new VisitsController(visitsServiceMock.Object, municipalitiesServiceMock.Object, usersServiceMock.Object, pageServiceMock.Object); var visitModel = new Visit(); var visitDetailsModel = new VisitDetailsViewModel(); visitsServiceMock.Setup(vs => vs.Update(visitModel)); visitsServiceMock.Setup(v => v.GetById(It.IsAny <Guid>())).Returns(visitModel); // TODO: Consider if this test should check the proper mapping between data and view models. It is tested in the first test above but because I moved mapping to happen in view model, mabye shold be tested in a separate test only for view models? // Act & Assert controller .WithCallTo(c => c.Edit(visitDetailsModel)) .ShouldRenderPartialView("_VisitDetailsPartial") .WithModel(visitDetailsModel); }