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));
                });
            }
Exemple #3
0
            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");
            }
Exemple #5
0
            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");
            }
Exemple #6
0
            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);
            }