AppointmentController CreateAppointmentController() { var testAppointments = FakeAppointmentData.CreateTestAppointments(); var repository = new FakeAppointmentRepository(testAppointments); return new AppointmentController(repository); }
public void BookAppointmentCompleteAction_With_ViewModel_Should_Return_View_And_Repository_Should_Contain_New_Appointment_Added() { // Arrange var identityMock = new Mock<ControllerContext>(); var eHealthIdentity = FakeIdentity.CreateIdentity("anita"); var testData = FakeAppointmentData.CreateTestAppointments(); var repository = new FakeAppointmentRepository(testData); var controller = new AppointmentController(repository); var testApptVM = FakeAppointmentData.CreateTestAppointmentViewModel(); //Mocks controller.ControllerContext = identityMock.Object; identityMock.SetupGet(p => p.HttpContext.User.Identity).Returns(eHealthIdentity); //Mock send email function var emailMock = new Mock<Email>(); emailMock.Setup(x => x.SendEmail()).Returns(true); testApptVM.Email = emailMock.Object; //Act ViewResult result = (ViewResult)controller.BookAppointmentComplete(testApptVM); //Assert Assert.IsTrue(repository.GetAppointmentCount() > 5); Assert.IsInstanceOfType(result.ViewData.Model, typeof(AppointmentViewModel)); }