public async Task <ActionResult <DepartmentManagerDetail> > Post(DepartmentManagerDetail deptManagerCreateRequest) { VwDeptManagerCurrent vwDeptManagerCurrent = new VwDeptManagerCurrent { EmpNo = deptManagerCreateRequest.EmpNo.Value, DeptNo = deptManagerCreateRequest.DeptNo, FromDate = deptManagerCreateRequest.FromDate.Value, ToDate = deptManagerCreateRequest.ToDate.Value, }; ActionResult <VwDeptManagerCurrent> postResult = await _deptManagerCurrentRepository.PostAsync(vwDeptManagerCurrent); VwDeptManagerCurrent value = postResult.Value; Employees employee = await _employeeRepository.GetAsync(value.EmpNo.ToString()); Departments department = await _departmentsRepository.GetAsync(value.DeptNo); var result = new DepartmentManagerDetail { DeptNo = value.DeptNo, DeptName = department.DeptName, FromDate = value.FromDate, ToDate = value.ToDate, EmpNo = value.EmpNo, FirstName = employee.FirstName, LastName = employee.LastName, }; return(CreatedAtAction( nameof(Post), nameof(DeptManagerDetailController), new { EmpNo = result.EmpNo, DeptNo = result.DeptNo }, result)); }
public async Task <ActionResult <DepartmentManagerDetail> > Put(string id, DepartmentManagerDetail deptManagerUpdateRequest) { Departments departmentCheck = await _departmentsRepository.GetAsync(deptManagerUpdateRequest.DeptNo); if (departmentCheck == null) { return(NotFound()); } Employees employeeCheck = await _employeeRepository.GetAsync(deptManagerUpdateRequest.EmpNo.Value.ToString()); if (employeeCheck == null) { return(NotFound()); } VwDeptManagerCurrent vwDeptManagerCurrent = new VwDeptManagerCurrent { EmpNo = deptManagerUpdateRequest.EmpNo.Value, DeptNo = deptManagerUpdateRequest.DeptNo, FromDate = deptManagerUpdateRequest.FromDate.Value, ToDate = deptManagerUpdateRequest.ToDate.Value, }; VwDeptManagerCurrent result = await _deptManagerCurrentRepository.PutAsync(id, vwDeptManagerCurrent); Employees employee = await _employeeRepository.GetAsync(result.EmpNo.ToString()); Departments department = await _departmentsRepository.GetAsync(result.DeptNo); DepartmentManagerDetail updatedDepartmentManagerDetail = new DepartmentManagerDetail { DeptNo = result.DeptNo, DeptName = department.DeptName, FromDate = result.FromDate, ToDate = result.ToDate, EmpNo = employee.EmpNo, FirstName = employee.FirstName, LastName = employee.LastName, }; return(updatedDepartmentManagerDetail); }
public async void ShouldCreateDeptManagerDetailWithEmpNo() { // Arrange DepartmentManagerDetail departmentManagerDetailCreateRequest = new DepartmentManagerDetail { DeptNo = deptNo, DeptName = deptName, FromDate = dateTime, ToDate = dateTime, EmpNo = managerEmpNo, FirstName = managerFirstName, LastName = managerLastName }; DepartmentManagerDetail expectedCreateResult = new DepartmentManagerDetail { DeptNo = deptNo, DeptName = deptName, FromDate = dateTime, ToDate = dateTime, EmpNo = managerEmpNo, FirstName = managerFirstName, LastName = managerLastName }; VwDeptManagerCurrent vwDeptManagerCurrentUpdateResult = new VwDeptManagerCurrent { DeptNo = deptNo, EmpNo = managerEmpNo, FromDate = DateTime.Now, ToDate = DateTime.Now, }; mockDeptManagerCurrentRepository .Setup(x => x.PostAsync( It.Is <VwDeptManagerCurrent>(i => i.DeptNo == departmentManagerDetailCreateRequest.DeptNo && i.EmpNo == departmentManagerDetailCreateRequest.EmpNo) )) .ReturnsAsync(vwDeptManagerCurrentUpdateResult); mockEmployeeRepository .Setup(x => x.GetAsync(It.Is <string>(i => i == managerEmpNo.ToString()))) .ReturnsAsync(new Employees { EmpNo = managerEmpNo, BirthDate = DateTime.Now, FirstName = managerFirstName, LastName = managerLastName }); mockDepartmentsRepository .Setup(x => x.GetAsync(It.Is <string>(i => i == deptNo))) .ReturnsAsync(new Departments { DeptNo = deptNo, DeptName = deptName }); // Act ActionResult <DepartmentManagerDetail> postResult = await _controller.Post(departmentManagerDetailCreateRequest); CreatedAtActionResult createdResult = postResult.Result as CreatedAtActionResult; DepartmentManagerDetail createdDeptManager = createdResult.Value as DepartmentManagerDetail; // Assert Assert.NotNull(createdResult); Assert.Equal(201, createdResult.StatusCode); // Assert.NotEqual(createResult.EmpNo, employeeCreateRequest.EmpNo); Assert.Equal(expectedCreateResult.DeptNo, createdDeptManager.DeptNo); Assert.Equal(expectedCreateResult.EmpNo, createdDeptManager.EmpNo); // Assert.Equal(expectedCreateResult.FromDate, createdDeptManager.FromDate); // Assert.Equal(expectedCreateResult.ToDate, createdDeptManager.ToDate); Assert.Equal(expectedCreateResult.DeptName, createdDeptManager.DeptName); Assert.Equal(expectedCreateResult.LastName, createdDeptManager.LastName); Assert.Equal(expectedCreateResult.FirstName, createdDeptManager.FirstName); }
public async void ShouldReturnNotFoudWhenUpdatingDeptManagerDetailWithInvalidEmpNo() { // Arrange DepartmentManagerDetail departmentManagerDetailUpdateRequest = new DepartmentManagerDetail { DeptNo = deptNo, DeptName = deptName, FromDate = dateTime, ToDate = dateTime, EmpNo = invalidManagerEmpNo, FirstName = managerFirstName, LastName = managerLastName }; DepartmentManagerDetail expectedUpdateResult = new DepartmentManagerDetail { DeptNo = newDeptNo, DeptName = newDeptName, FromDate = dateTime, ToDate = dateTime, EmpNo = newManagerEmpNo, FirstName = newManagerFirstName, LastName = newManagerLastName }; VwDeptManagerCurrent vwDeptManagerCurrentUpdateResult = new VwDeptManagerCurrent { DeptNo = newDeptNo, EmpNo = newManagerEmpNo, FromDate = DateTime.Now, ToDate = DateTime.Now, }; mockDeptManagerCurrentRepository .Setup(x => x.PutAsync( It.Is <string>(i => i == deptNo), It.Is <VwDeptManagerCurrent>(i => i.DeptNo == departmentManagerDetailUpdateRequest.DeptNo && i.EmpNo == departmentManagerDetailUpdateRequest.EmpNo) )) .ReturnsAsync(vwDeptManagerCurrentUpdateResult); mockEmployeeRepository .Setup(x => x.GetAsync(It.Is <string>(i => i == newManagerEmpNo.ToString()))) .ReturnsAsync(new Employees { EmpNo = newManagerEmpNo, BirthDate = DateTime.Now, FirstName = newManagerFirstName, LastName = newManagerLastName }); mockDepartmentsRepository .Setup(x => x.GetAsync(It.Is <string>(i => i == newDeptNo))) .ReturnsAsync(new Departments { DeptNo = newDeptNo, DeptName = newDeptName }); // Act ActionResult <DepartmentManagerDetail> updateResult = await _controller.Put(deptNo, departmentManagerDetailUpdateRequest); NotFoundResult notFoundResult = updateResult.Result as NotFoundResult; // Assert Assert.NotNull(notFoundResult); Assert.Equal(404, notFoundResult.StatusCode); }