public void ProviderReloadWillReloadProperly()
        {
            string testFlagName       = nameof(testFlagName);
            var    originalFlag       = new FeatureFlag(testFlagName, false);
            var    featureFlagOptions = new FeatureFlagOption()
            {
                { testFlagName, originalFlag }
            };

            string otherTestFlagName       = nameof(otherTestFlagName);
            var    otherFlag               = new FeatureFlag(otherTestFlagName, false);
            var    otherFeatureFlagOptions = new FeatureFlagOption()
            {
                { testFlagName, otherFlag }
            };

            var optionsMonitor = new TestOptionsMonitor(featureFlagOptions);

            var provider = new ConfigurationFeatureFlagProvider(optionsMonitor);

            var originalFlags = provider.GetFlags();

            optionsMonitor.Set(otherFeatureFlagOptions);

            var otherFlags = provider.GetFlags();

            Assert.Single(originalFlags);
            Assert.NotNull(originalFlags.FirstOrDefault());
            Assert.Equal(testFlagName, originalFlags.FirstOrDefault().Name);


            Assert.Single(otherFlags);
            Assert.NotNull(otherFlags.FirstOrDefault());
            Assert.Equal(otherTestFlagName, otherFlags.FirstOrDefault().Name);
        }
예제 #2
0
 private void ReloadOption(FeatureFlagOption featureFlagOption, string name)
 {
     flags = featureFlagOption?.Select(ResolveFeatureFlag) ?? Enumerable.Empty <FeatureFlag>();
 }