public void Given_valid_viewmodel_post_When_create_employee_Then_should_call_the_correct_methods() { // Given var controller = CreateEmployeeController(); var employeeViewModel = EmployeeViewModelBuilder .Create() .WithEmployeeReference("Tester") .WithTitle("Mr") .WithForename("Barry") .WithSurname("Scott") .WithNationalityId(1) .WithSex("Male") .Build(); var response = new AddEmployeeResponse{Success = true}; _employeeService .Setup(x => x.Add(It.IsAny<AddEmployeeRequest>())) .Returns(response); // When controller.Create(employeeViewModel); // Then _employeeService.Verify(x => x.Add(MatchesEmployeeViewModelProperties(employeeViewModel))); }
public void Given_valid_viewmodel_post_When_create_employee_Then_should_return_correct_result() { // Given var controller = CreateEmployeeController(); var request = EmployeeViewModelBuilder .Create() .Build(); var response = new AddEmployeeResponse() { EmployeeId = Guid.NewGuid(), Success = true }; _employeeService.Setup(x => x.Add(It.IsAny<AddEmployeeRequest>())).Returns(response); // When var result = controller.Create(request) as RedirectToRouteResult; // Then Assert.That(result.RouteValues["action"], Is.EqualTo("Index")); Assert.That(result.RouteValues["controller"], Is.EqualTo("Employee")); Assert.That(result.RouteValues["employeeId"], Is.EqualTo(response.EmployeeId)); }
public void Given_Valid_employee_details_When_Create_is_called_Then_EmployeeService_CreateUser_is_Called() { // Given var controller = CreateEmployeeController(); Guid employeeId = Guid.NewGuid(); Guid userRoleId = Guid.NewGuid(); long userSiteId = 1234; var request = EmployeeViewModelBuilder .Create() .WithEmployeeId(employeeId) .WithTitle("Mr") .WithForename("Fred") .WithSurname("Flintstone") .WithSex("Male") .WithUserRoleId(userRoleId) .WithUserSiteId(userSiteId) .Build(); var employeeDto = new EmployeeDto { Id = employeeId, MainContactDetails = new EmployeeContactDetailDto { Email = "*****@*****.**", Telephone2 = "333444555" } }; _employeeService .Setup(x => x.GetEmployee(It.IsAny<Guid>(), It.IsAny<long>())) .Returns(employeeDto); var response = new AddEmployeeResponse() { EmployeeId = Guid.NewGuid(), Success = true }; _employeeService .Setup(x => x.Add(It.IsAny<AddEmployeeRequest>())) .Returns(response); // When ActionResult result = controller.Update(request); // Then _employeeService.Verify( x => x.CreateUser( It.Is<CreateEmployeeAsUserRequest>( y => y.RoleId == userRoleId && y.SiteId == userSiteId && y.EmployeeId == employeeId ))); }