Ejemplo n.º 1
0
        public void ShouldEditTheLeaveTest()
        {
            var leave = new UpdateLeaveViewModel
            {
                FromDate = DateTime.Now.Date,
                ToDate   = DateTime.Now.AddDays(2).Date,
                Reason   = "No Reason",
                StatusId = (int)LeaveStatusEnum.Pending
            };

            employeeManagerMock.Setup(x => x.GetEmployeeByUserNameAsync(It.IsAny <string>()))
            .Returns(Task.FromResult(new Employee()
            {
                Id = Guid.NewGuid().ToString()
            }));

            leaveManagerMock.Setup(x => x.UpdateLeave(It.IsAny <Leave>()))
            .Returns(1);

            var controller = new LeaveController(leaveManagerMock.Object, employeeManagerMock.Object);

            controller.ControllerContext.HttpContext = _contextMock.Object;
            var results = controller.EditLeave(leave);
            var redirectToActionResult = results as RedirectToActionResult;

            Assert.AreEqual("Index", redirectToActionResult.ActionName);
        }
Ejemplo n.º 2
0
 public IActionResult EditLeave(UpdateLeaveViewModel model)
 {
     try
     {
         if (ModelState.IsValid)
         {
             //can only update leave that is pending
             if (model.StatusId != (int)LeaveStatusEnum.Pending)
             {
                 ViewData["error"] = "You can only update Leave Request that is on Pending Status";
                 return(View(model));
             }
             var leave   = Mapper.Map <UpdateLeaveViewModel, Leave>(model);
             var results = leaveManager.UpdateLeave(leave);
             ViewData["results"] = "Leave updated successfully";
             if (results > 0)
             {
                 return(RedirectToAction("Index"));
             }
             ModelState.AddModelError("error", "Error when Updating the leave");
         }
         return(View(model));
     }
     catch (Exception ex)
     {
         ViewData["results"] = "Error: " + ex.Message;
         return(View(model));
     }
 }