public async Task Delete_Get_ModelIsValid_AsksForDeleteView()
        {
            Mock <AnnualLeaveService> mock       = new Mock <AnnualLeaveService>();
            AnnualLeaveController     controller = GetNewAnnualLeaveController(mock.Object, null);

            ViewResult result = (await controller.Delete(1)) as ViewResult;

            Assert.AreEqual("Delete", result.ViewName);
        }
        public async Task Delete_Get_ModelIsInvalid_AsksForErrorView()
        {
            Mock <AnnualLeaveService> mock = new Mock <AnnualLeaveService>();

            mock.Setup(m => m.FindByIdAsync(It.IsAny <int?>())).Throws(new ValidationException("FindByIdAsync method throws Exception", ""));
            AnnualLeaveController controller = GetNewAnnualLeaveController(mock.Object, null);

            ViewResult result = (await controller.Delete(1)) as ViewResult;

            Assert.AreEqual("Error", result.ViewName);
        }
        public async Task Delete_Get_ModelIsInvalid_RetrievesExceptionMessageFromModel()
        {
            Mock <AnnualLeaveService> mock = new Mock <AnnualLeaveService>();

            mock.Setup(m => m.FindByIdAsync(It.IsAny <int?>())).Throws(new ValidationException("FindByIdAsync method throws Exception", ""));
            AnnualLeaveController controller = GetNewAnnualLeaveController(mock.Object, null);

            ViewResult result = (await controller.Delete(1)) as ViewResult;

            string[] model = result.ViewData.Model as string[];
            Assert.AreEqual("FindByIdAsync method throws Exception", model[0]);
        }
        public async Task Delete_Get_ModelIsValid_RetrievesAnnualLeaveFromModel()
        {
            Mock <AnnualLeaveService> mock = new Mock <AnnualLeaveService>();

            mock.Setup(m => m.FindByIdAsync(It.IsAny <int?>())).ReturnsAsync((int?_id) => new AnnualLeaveDTO {
                Id = _id.Value
            });
            AnnualLeaveController controller = GetNewAnnualLeaveController(mock.Object, null);

            ViewResult result = (await controller.Delete(7)) as ViewResult;

            AnnualLeaveViewModel model = result.ViewData.Model as AnnualLeaveViewModel;

            Assert.AreEqual(7, model.Id);
        }