public void ShouldCreateLeaveForCurrentlyLoggedInEmployee() { var leave = new CreateLeaveViewModel { FromDate = DateTime.Now.Date, ToDate = DateTime.Now.AddDays(2).Date, Reason = "No Reason" }; employeeManagerMock.Setup(x => x.GetEmployeeByUserNameAsync(It.IsAny <string>())) .Returns(Task.FromResult(new Employee() { Id = Guid.NewGuid().ToString() })); leaveManagerMock.Setup(x => x.AddLeave(It.IsAny <Leave>())) .Returns(1); var controller = new LeaveController(leaveManagerMock.Object, employeeManagerMock.Object); controller.ControllerContext.HttpContext = _contextMock.Object; var results = controller.AddLeave(leave); var redirectToActionResult = results as RedirectToActionResult; Assert.AreEqual("Index", redirectToActionResult.ActionName); }
public IActionResult AddLeave(CreateLeaveViewModel leaveViewModel) { try { if (ModelState.IsValid) { var leave = Mapper.Map <CreateLeaveViewModel, Leave>(leaveViewModel); leave.EmployeeId = currentEmployee.Id; var results = leaveManager.AddLeave(leave); if (results > 0) { return(RedirectToAction("Index")); } ModelState.AddModelError("error", "Error when creating the leave"); } return(View(leaveViewModel)); } catch (Exception ex) { ViewData["results"] = "Error:" + ex.Message; return(View(leaveViewModel)); } }