public void Index_GetRedirectToRouteResult_IfDropdownNotCached()
        {
            // Arrange
            var controller = new PayoutController(null);
            // Act
            var result = controller.Index() as RedirectToRouteResult;

            // Assert
            Assert.IsNotNull(result);
            Assert.AreEqual("~/Error/PageErrorFound/?msg=Dropdown was not populated, click on 'Return Back'", result.RouteName);
        }
        public void Index_GetView_IfDropdownIsCached()
        {
            var countofHoursInCachedDropdown = 13;
            var defaultSelectedValue         = -1;

            // Arrange
            HoursDropdownMapper.CacheHoursDropdown();
            var cacheService = IocContainer.Resolve <ICacheService>();
            var controller   = new PayoutController(cacheService);
            // Act
            var result = controller.Index() as ViewResult;

            // Assert
            Assert.IsNotNull(result);
            Assert.AreEqual(countofHoursInCachedDropdown, ((HoursViewModel)result.Model)?.StartTimeHours.Count());
            Assert.AreEqual(countofHoursInCachedDropdown, ((HoursViewModel)result.Model)?.BedTimeHours.Count());
            Assert.AreEqual(countofHoursInCachedDropdown, ((HoursViewModel)result.Model)?.EndTimeHours.Count());
            Assert.AreEqual(defaultSelectedValue, ((HoursViewModel)result.Model)?.SelectedStartTimeHours);
            Assert.AreEqual(defaultSelectedValue, ((HoursViewModel)result.Model)?.SelectedBedTimeHours);
            Assert.AreEqual(defaultSelectedValue, ((HoursViewModel)result.Model)?.SelectedEndTimeHours);
            Assert.IsNotNull(result);
        }