public FeatureToggleResponse IsEnabled(FeatureToggleRequest request) { var response = new FeatureToggleResponse { Enabled = IsEnabled(request.ServiceName, request.UserName, request.MachineName, request.Feature) }; _logger.Debug("FeatureToggle retrieved {@Request} {@Response}", request, response); return(response); }
public void feature_toggles_should_be_updated() { var toggleFetcher = A.Fake <IToggleFetcher>(); var toggleBackupHandler = A.Fake <IToggleBackupHandler>(); var toggleCollection = PopulatedToggleCollection( new FeatureToggle("toggleFetcherCalled", false, new[] { new ActivationStrategy("custom", null) })); A.CallTo(() => toggleBackupHandler.Read()).Returns(toggleCollection); //setup fetcher toggleCollection = PopulatedToggleCollection( new FeatureToggle("toggleFetcherCalled", true, new[] { new ActivationStrategy("custom", null) })); var response = FeatureToggleResponse.Changed(toggleCollection); A.CallTo(() => toggleFetcher.FetchToggles()).Returns(response); //init var executor = A.Fake <IUnleashScheduledExecutor>(); //ArgumentCaptor<Runnable> runnableArgumentCaptor = ArgumentCaptor.forClass(Runnable.class); var callback = new Capture <TimerCallback>(); UnleashConfig config = new UnleashConfig.Builder() .AppName("test") .UnleashAPI("http://localhost:4242/api/") .FetchTogglesInterval(200L) .Build(); //run the toggle fetcher callback A.CallTo(() => executor.SetInterval(callback, A <long> .Ignored, A <long> .Ignored)).Returns(new AutoResetEvent(false)); var toggleRepository = new FeatureToggleRepository(config, executor, toggleFetcher, toggleBackupHandler); A.CallTo(() => toggleFetcher.FetchToggles()).MustNotHaveHappened(); callback.Value(null); A.CallTo(() => toggleBackupHandler.Read()).MustHaveHappened(Repeated.Exactly.Once); A.CallTo(() => toggleFetcher.FetchToggles()).MustHaveHappened(Repeated.Exactly.Once); Assert.True(toggleRepository.GetToggle("toggleFetcherCalled").IsEnabled); }