public void AddsTogglerToFeatureContext(FeatureContextBuilder sut, IFeatureToggler featureToggler) { IFeatureContext context = sut.WithToggler(featureToggler) .GetContext(); Assert.Same(featureToggler, context.TogglerSource.GetFeatureToggles().Single()); }
public MigrateTask(Lazy <IDbFactory> db, IIntegrationDatabaseConfiguration configuration, IKernel kernel, IMigrationDbs dbs, IFeatureToggler featureToggler) { _kernel = kernel; _featureToggler = featureToggler; if (!configuration.Disabled) { string connectionString = EnsureIntegrationDb(db.Value, configuration.CheckExistsAndCreateDatabaseIfNotFound, out _databaseCreated); var integrationDb = new IntegrationMigrationDb( configuration.DatabaseServer, ConnectionString.FromText(connectionString), typeof(M1_Baseline).Assembly, typeof(M1_Baseline).Namespace); MigrationRunner runner = CreateRunner(integrationDb, out _); long latestVersion = runner.VersionLoader.VersionInfo.Latest(); _disabledFeatures = DisableFeatures(latestVersion); dbs = dbs.WithIntegrationDb(integrationDb); } _dbs = dbs.ToArray(); }
public void IsEnabledCallsIsEnabledOnToggle([Frozen] IFeatureTogglerSource togglerSource, IFeature feature, IFeatureToggler featureToggler, bool expected, FeatureContext sut) { A.CallTo(() => featureToggler.IsEnabled(sut, feature)) .Returns(expected); A.CallTo(() => togglerSource.GetFeatureToggles()) .Returns(new[] { featureToggler }); bool result = sut.IsEnabled(feature); A.CallTo(() => featureToggler.IsEnabled(sut, feature)) .MustHaveHappened(); Assert.Equal(expected, result); }
public DbDistributedMutex(IDbFactory db, IIntegrationDatabaseConfiguration configuration, IRuntimeSettings settings, IFeatureToggler featureToggler, IShutdown shutdown) { _db = db; _configuration = configuration; _featureToggler = featureToggler; _shutdown = shutdown; if (!TimeSpan.TryParse(settings[QueryLockIntervalKey], out TimeSpan queryLockInterval)) { queryLockInterval = TimeSpan.FromSeconds(5); } _queryLockInterval = queryLockInterval; }
public void IsEnabledUsesFirstToggleProviderResult([Frozen] IFeatureTogglerSource togglerSource, IFeature feature, IFeatureToggler skippedToggler, IFeatureToggler enabledToggler, IFeatureToggler endToggler, bool expected, FeatureContext sut) { A.CallTo(() => enabledToggler.IsEnabled(sut, feature)) .Returns(expected); A.CallTo(() => togglerSource.GetFeatureToggles()) .Returns(new[] { skippedToggler, enabledToggler, endToggler }); bool result = sut.IsEnabled(feature); Assert.Equal(expected, result); A.CallTo(() => endToggler.IsEnabled(sut, feature)) .MustNotHaveHappened(); }
public static void Run() { using (var context = ApplicationContext.Create(application => application .Database(database => database .IntegrationDb(integrationDb => integrationDb .Disable())) .Services(services => services .Advanced(advanced => advanced .Register <MyFeature>())))) { MyFeature myFeature = context.Resolve <MyFeature>(); IFeatureToggler toggler = context.Resolve <IFeatureToggler>(); toggler.Disable <MyFeature>(); myFeature.DoThing(); toggler.Enable <MyFeature>(); myFeature.DoThing(); } }
public override void Disable(IFeatureToggler toggler) { toggler.Disable <DbDistributedMutex>(); }
public abstract void Enable(IFeatureToggler toggler);
public DbLogger(IDbFactory db, IIntegrationDatabaseConfiguration configuration, IFeatureToggler featureToggler) { _db = db; _configuration = configuration; _featureToggler = featureToggler; }
public ITogglerBuilder AddToggler(IFeatureToggler featureToggler) { _togglers.Add(featureToggler); return(this); }
public FeatureContextBuilder WithToggler(IFeatureToggler toggler) { _togglers.Add(toggler); return(this); }
public override void Disable(IFeatureToggler toggler) { toggler.Disable <DbLogger>(); }
public MyFeature(IConsoleWriter console, IFeatureToggler feature) { _console = console; _feature = feature; }