public async Task RevertsToDefaultValueWhenFeatureFlagIsTurnedOff()
            {
                SetCacheTime(ODataCachedEndpoint.GetSpecificPackage, 600);
                var target = new ODataCacheOutputAttribute(ODataCachedEndpoint.GetSpecificPackage, 100)
                {
                    ReloadDuration = TimeSpan.Zero,
                };

                target.OnActionExecuting(ActionContext);
                await target.OnActionExecutedAsync(ActionExecutedContext, CancellationToken.None);

                FeatureFlagService.Setup(x => x.AreDynamicODataCacheDurationsEnabled()).Returns(false);
                Cache.ResetCalls();
                target.OnActionExecuting(ActionContext);

                var before = DateTimeOffset.Now;
                await target.OnActionExecutedAsync(ActionExecutedContext, CancellationToken.None);

                var after = DateTimeOffset.Now;

                Cache.Verify(
                    x => x.Add(
                        It.IsAny <string>(),
                        It.IsAny <object>(),
                        It.Is <DateTimeOffset>(e => before.AddSeconds(100) <= e && e <= after.AddSeconds(100)),
                        null),
                    Times.Once);
            }
Esempio n. 2
0
            public void ReturnsFalseWhenUserIsNotInFlight()
            {
                FeatureFlagService
                .Setup(x => x.IsABTestingEnabled(It.IsAny <User>()))
                .Returns(false);

                var result = RunTest(User);

                Assert.False(result, "The test should not be enabled.");
                FeatureFlagService.Verify(x => x.IsABTestingEnabled(User), Times.Once);
                Assert.Empty(ResponseCookies);
                EnrollmentFactory.Verify(x => x.Initialize(), Times.Never);
                ABTestEnrollment outEnrollment;

                EnrollmentFactory.Verify(x => x.TryDeserialize(It.IsAny <string>(), out outEnrollment), Times.Never);
            }
            public async Task CanUseZeroWhenConfigurationIsTurnedOff()
            {
                SetCacheTime(ODataCachedEndpoint.GetSpecificPackage, 600);
                var target = new ODataCacheOutputAttribute(ODataCachedEndpoint.GetSpecificPackage, 0);

                FeatureFlagService.Setup(x => x.AreDynamicODataCacheDurationsEnabled()).Returns(false);
                target.OnActionExecuting(ActionContext);

                await target.OnActionExecutedAsync(ActionExecutedContext, CancellationToken.None);

                Cache.Verify(
                    x => x.Add(
                        It.IsAny <string>(),
                        It.IsAny <object>(),
                        It.IsAny <DateTimeOffset>(),
                        It.IsAny <string>()),
                    Times.Never);
            }