public async Task EnabledDuringDateRangeToggle_DisabledAfterEndDate()
        {
            var past = DateTime.Now.AddSeconds(-10);

            var toggle = new TestDateRangeToggle(past.AddSeconds(-1), past);

            Assert.IsFalse(toggle.FeatureEnabled);
            Assert.IsFalse(await toggle.IsFeatureEnabledAsync(CancellationToken.None));
        }
        public async Task EnabledDuringDateRangeToggle_DisabledPriorToBeginDate()
        {
            var past   = DateTime.Now.AddSeconds(-10);
            var future = DateTime.Now.AddSeconds(10);

            var toggle = new TestDateRangeToggle(future);

            Assert.IsFalse(toggle.FeatureEnabled);
            Assert.IsFalse(await toggle.IsFeatureEnabledAsync(CancellationToken.None));

            // test with end date present
            toggle = new TestDateRangeToggle(future, future.AddSeconds(1));
            Assert.IsFalse(toggle.FeatureEnabled);
            Assert.IsFalse(await toggle.IsFeatureEnabledAsync(CancellationToken.None));
        }
        public async Task EnabledDuringDateRangeToggle_EnablesAfterBeginDate()
        {
            var past = DateTime.Now.AddSeconds(-10);

            var toggle = new TestDateRangeToggle(past);

            Assert.IsTrue(toggle.FeatureEnabled);
            Assert.IsTrue(await toggle.IsFeatureEnabledAsync(CancellationToken.None));

            // test with end date present
            var future = DateTime.Now.AddSeconds(10);

            toggle = new TestDateRangeToggle(past, future);
            Assert.IsTrue(toggle.FeatureEnabled);
            Assert.IsTrue(await toggle.IsFeatureEnabledAsync(CancellationToken.None));
        }