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); }
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); }
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); }
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)); }
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); }
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)); }