예제 #1
0
        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);
        }
예제 #2
0
        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));
            }
        }