public void no_backup_file_and_no_repository_available_should_give_empty_repo() { var config = UnleashConfig.TheBuilder() .AppName("test") .UnleashAPI("http://localhost:4242/api/") .Build(); var toggleFetcher = new HttpToggleFetcher(config); var toggleBackupHandler = new ToggleBackupHandlerFile(config); var toggleRepository = new FeatureToggleRepository(config, new MockExecutor(), toggleFetcher, toggleBackupHandler); Assert.Null(toggleRepository.GetToggle("unknownFeature")); }
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); }