コード例 #1
0
        public void IsEnabledCallsAllToggles([Frozen] IFeatureToggleProvider toggleProvider, IFeature feature,
                                             Fixture fixture, FeatureContext sut)
        {
            var featureToggles = fixture.CreateMany <Fake <IFeatureToggle> >().ToList();

            foreach (Fake <IFeatureToggle> fake in featureToggles)
            {
                fake.CallsTo(ft => ft.IsEnabled(feature))
                .Returns(null);
            }
            var finalTogle = A.Fake <Fake <IFeatureToggle> >();

            finalTogle.CallsTo(ft => ft.IsEnabled(feature))
            .Returns(true);
            featureToggles.Add(finalTogle);

            A.CallTo(() => toggleProvider.GetFeatureToggles())
            .Returns(featureToggles.Select(f => f.FakedObject));

            sut.IsEnabled(feature);

            foreach (Fake <IFeatureToggle> fake in featureToggles)
            {
                fake.CallsTo(ft => ft.IsEnabled(feature))
                .MustHaveHappened();
            }
        }
コード例 #2
0
ファイル: FeatureContext.cs プロジェクト: johnduhart/toggled
        public FeatureContext(IFeatureToggleProvider toggleProvider)
        {
            if (toggleProvider == null)
                throw new ArgumentNullException(nameof(toggleProvider));

            _toggleProvider = toggleProvider;
        }
コード例 #3
0
        public void IsEnabledCallsGetsFeatureToggles([Frozen] IFeatureToggleProvider toggleProvider, IFeature feature,
                                                     FeatureContext sut)
        {
            Ignore.Exception <FeatureStateNotFoundException, bool>(() => sut.IsEnabled(feature));

            A.CallTo(() => toggleProvider.GetFeatureToggles())
            .MustHaveHappened();
        }
コード例 #4
0
        public FeatureContext(IFeatureToggleProvider toggleProvider)
        {
            if (toggleProvider == null)
            {
                throw new ArgumentNullException(nameof(toggleProvider));
            }

            _toggleProvider = toggleProvider;
        }
コード例 #5
0
        public void IsEnabledCallsIsEnabledOnToggle([Frozen] IFeatureToggleProvider toggleProvider, IFeature feature,
                                                    IFeatureToggle featureToggle, bool expected, FeatureContext sut)
        {
            A.CallTo(() => featureToggle.IsEnabled(feature))
            .Returns(expected);
            A.CallTo(() => toggleProvider.GetFeatureToggles())
            .Returns(new[] { featureToggle });

            bool result = sut.IsEnabled(feature);

            A.CallTo(() => featureToggle.IsEnabled(feature))
            .MustHaveHappened();
            Assert.Equal(expected, result);
        }
コード例 #6
0
        public void IsEnabledUsesFirstToggleProviderResult([Frozen] IFeatureToggleProvider toggleProvider,
                                                           IFeature feature, IFeatureToggle skippedToggle, IFeatureToggle enabledToggle, IFeatureToggle endToggle,
                                                           bool expected, FeatureContext sut)
        {
            A.CallTo(() => enabledToggle.IsEnabled(feature))
            .Returns(expected);
            A.CallTo(() => toggleProvider.GetFeatureToggles())
            .Returns(new[] { skippedToggle, enabledToggle, endToggle });

            bool result = sut.IsEnabled(feature);

            Assert.Equal(expected, result);
            A.CallTo(() => endToggle.IsEnabled(feature))
            .MustNotHaveHappened();
        }
コード例 #7
0
 public BackgroundService(ILogger <BackgroundService> logger, IFeatureToggleProvider featureToggleProvider)
 {
     _logger = logger;
     _featureToggleProvider = featureToggleProvider;
 }
コード例 #8
0
ファイル: KeyGenerator.cs プロジェクト: x4D40/Blockchain
 public KeyGenerator(IFeatureToggleProvider featureProvider)
 {
     _iFeatureProvider = featureProvider;
 }
コード例 #9
0
ファイル: DevDocumentFilter.cs プロジェクト: x4D40/Blockchain
 public DevDocumentFilter(IFeatureToggleProvider featureProvider)
 {
     _iFeatureProvider = featureProvider;
 }
コード例 #10
0
 public CryptoSigner(ITransactionHasher transactionHasher, IFeatureToggleProvider featureProvider)
 {
     _iTransactionHasher = transactionHasher;
     _iFeatureProvider   = featureProvider;
 }
コード例 #11
0
 public ValuesController(IFeatureToggleProvider featureToggleProvider)
 {
     _featureToggleProvider = featureToggleProvider;
 }
コード例 #12
0
 public static bool IsEnable(this Enum featureFlag, IFeatureToggleProvider featureToggleProvider,
                             IDictionary <string, object> userAttributes = null)
 {
     return(featureToggleProvider.IsEnable(featureFlag, userAttributes));
 }
コード例 #13
0
 public static T Get <T>(this Enum featureFlag, IFeatureToggleProvider featureToggleProvider,
                         IDictionary <string, object> userAttributes = null)
 {
     return(featureToggleProvider.Get <T>(featureFlag, userAttributes));
 }