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);
            }
Exemplo n.º 2
0
            public void WhenManageDeprecationFeatureIsEnabledAndManyVersions_ReturnsIfManageDeprecationForManyVersionsIsEnabled(
                bool isManyVersionsEnabled)
            {
                // Arrange
                var user         = new User();
                var registration = new PackageRegistration();

                for (var i = 0; i < 1000; i++)
                {
                    registration.Packages.Add(new Package {
                        Key = i
                    });
                }

                var clientMock = new Mock <IFeatureFlagClient>();

                clientMock
                .Setup(c => c.IsEnabled("NuGetGallery.ManageDeprecation", It.IsAny <IFlightUser>(), false))
                .Returns(true);

                clientMock
                .Setup(c => c.IsEnabled("NuGetGallery.ManageDeprecationMany", It.IsAny <IFlightUser>(), true))
                .Returns(isManyVersionsEnabled);

                var service = new FeatureFlagService(clientMock.Object);

                // Act
                var result = service.IsManageDeprecationEnabled(user, registration);

                // Assert
                Assert.Equal(isManyVersionsEnabled, result);
            }
Exemplo n.º 3
0
            public void WhenManageDeprecationFeatureIsDisabled_ReturnsFalse(bool hasManyVersions)
            {
                // Arrange
                var user         = new User();
                var registration = new PackageRegistration();

                if (hasManyVersions)
                {
                    for (var i = 0; i < 1000; i++)
                    {
                        registration.Packages.Add(new Package {
                            Key = i
                        });
                    }
                }

                var clientMock = new Mock <IFeatureFlagClient>();

                clientMock
                .Setup(c => c.IsEnabled("NuGetGallery.ManageDeprecation", It.IsAny <IFlightUser>(), false))
                .Returns(false);

                var service = new FeatureFlagService(clientMock.Object);

                // Act
                var result = service.IsManageDeprecationEnabled(user, registration);

                // Assert
                Assert.False(result);
            }
Exemplo n.º 4
0
            public void WhenRegistrationNull_ThrowsArgumentNullException()
            {
                // Arrange
                var user = new User();

                var clientMock = new Mock <IFeatureFlagClient>(MockBehavior.Strict);
                var service    = new FeatureFlagService(clientMock.Object);

                // Act & Assert
                Assert.Throws <ArgumentNullException>(
                    () => service.IsManageDeprecationEnabled(user, null));
            }
Exemplo n.º 5
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);
            }
Exemplo n.º 7
0
            public void WhenManageDeprecationFeatureIsEnabledAndFewVersions_ReturnsTrue()
            {
                // Arrange
                var user         = new User();
                var registration = new PackageRegistration();
                var allVersions  = new List <Package>();

                var clientMock = new Mock <IFeatureFlagClient>();

                clientMock
                .Setup(c => c.IsEnabled("NuGetGallery.ManageDeprecation", It.IsAny <IFlightUser>(), false))
                .Returns(true);

                var service = new FeatureFlagService(clientMock.Object);

                // Act & Assert
                Assert.True(service.IsManageDeprecationEnabled(user, registration));
                Assert.True(service.IsManageDeprecationEnabled(user, allVersions));
            }