Exemple #1
0
            public void WhenAccountIsFlighted_ReturnsTrue(bool defaultValue)
            {
                var latestFlags = FeatureFlagStateBuilder
                                  .Create()
                                  .WithFlight("Flight", new Flight(all: false, siteAdmins: false, accounts: new List <string> {
                    "Alice", "case_test"
                }, domains: new List <string>()))
                                  .Build();

                _cache
                .Setup(f => f.GetLatestFlagsOrNull())
                .Returns(latestFlags);

                Assert.False(_target.IsEnabled("Flight", _user, defaultValue));
                Assert.False(_target.IsEnabled("flight", _user, defaultValue));

                Assert.True(_target.IsEnabled("Flight", _admin, defaultValue));
                Assert.True(_target.IsEnabled("flight", _admin, defaultValue));

                Assert.False(_target.IsEnabled("Flight", _anonymous, defaultValue));
                Assert.False(_target.IsEnabled("flight", _anonymous, defaultValue));

                // Account names should be case insensitive
                var user2 = new TestFlightUser {
                    Username = "******", EmailAddress = "*****@*****.**"
                };

                Assert.True(_target.IsEnabled("Flight", user2, defaultValue));
                Assert.True(_target.IsEnabled("flight", user2, defaultValue));
            }
Exemple #2
0
            public FactsBase()
            {
                _storage   = new Mock <IFeatureFlagStorageService>();
                _telemetry = new Mock <IFeatureFlagTelemetryService>();
                _options   = new FeatureFlagOptions();

                _target = new FeatureFlagCacheService(
                    _storage.Object,
                    _options,
                    _telemetry.Object,
                    Mock.Of <ILogger <FeatureFlagCacheService> >());

                _latestFlags = FeatureFlagStateBuilder
                               .Create()
                               .WithFeature("Foo", FeatureStatus.Enabled)
                               .Build();

                _stalenessMetrics = new List <TimeSpan>();
                _telemetry
                .Setup(t => t.TrackFeatureFlagStaleness(It.IsAny <TimeSpan>()))
                .Callback((TimeSpan staleness) =>
                {
                    _stalenessMetrics.Add(staleness);
                });
            }
Exemple #3
0
            public void WhenFlagUnknown_ReturnsDefault(bool defaultValue)
            {
                var latestFlags = FeatureFlagStateBuilder.Create().Build();

                _cache
                .Setup(f => f.GetLatestFlagsOrNull())
                .Returns(latestFlags);

                Assert.Equal(defaultValue, _target.IsEnabled("Feature", defaultValue));
            }
Exemple #4
0
            public void WhenFlagDisabled_ReturnsFalse(bool defaultValue)
            {
                var latestFlags = FeatureFlagStateBuilder
                                  .Create()
                                  .WithFeature("Feature", FeatureStatus.Disabled)
                                  .Build();

                _cache
                .Setup(f => f.GetLatestFlagsOrNull())
                .Returns(latestFlags);

                Assert.False(_target.IsEnabled("Feature", defaultValue));
                Assert.False(_target.IsEnabled("feature", defaultValue));
            }
Exemple #5
0
            public void WhenFlightUnknown_ReturnsDefault(bool defaultValue)
            {
                var latestFlags = FeatureFlagStateBuilder
                                  .Create()
                                  .WithFlight("Flight", new Flight(all: false, siteAdmins: false, accounts: new List <string>(), domains: new List <string>()))
                                  .Build();

                _cache
                .Setup(f => f.GetLatestFlagsOrNull())
                .Returns(latestFlags);

                Assert.Equal(defaultValue, _target.IsEnabled("Unknown", _user, defaultValue));
                Assert.Equal(defaultValue, _target.IsEnabled("Unknown", _anonymous, defaultValue));
            }
Exemple #6
0
            public void WhenAdminsFlighted_ReturnsTrue(bool defaultValue)
            {
                var latestFlags = FeatureFlagStateBuilder
                                  .Create()
                                  .WithFlight("Flight", new Flight(all: false, siteAdmins: true, accounts: new List <string>(), domains: new List <string>()))
                                  .Build();

                _cache
                .Setup(f => f.GetLatestFlagsOrNull())
                .Returns(latestFlags);

                Assert.False(_target.IsEnabled("Flight", _user, defaultValue));
                Assert.False(_target.IsEnabled("flight", _user, defaultValue));

                Assert.True(_target.IsEnabled("flight", _admin, defaultValue));
                Assert.True(_target.IsEnabled("Flight", _admin, defaultValue));

                Assert.False(_target.IsEnabled("Flight", _anonymous, defaultValue));
                Assert.False(_target.IsEnabled("flight", _anonymous, defaultValue));
            }