public void Should_be_able_to_toggle_a_switch()
        {
            var builder = new ContainerBuilder();

            builder.RegisterCodeSwitchToggle<UseNewMethod>();
            builder.EnableCodeSwitchTracking();

            var container = builder.Build();

            using (var scope = container.BeginLifetimeScope())
            {
                Assert.IsFalse(scope.Resolve<ICodeSwitch<UseNewMethod>>().Enabled);

                Assert.AreEqual(1, scope.GetEvaluatedCodeSwitches().Count());
            }

            container.Resolve<IToggleCodeSwitch<UseNewMethod>>().Enable();

            using (var scope = container.BeginLifetimeScope())
            {
                Assert.IsTrue(scope.Resolve<ICodeSwitch<UseNewMethod>>().Enabled);

                Assert.AreEqual(1, scope.GetEvaluatedCodeSwitches().Count());
            }

        }
            public void Setup()
            {
                var builder = new ContainerBuilder();

                builder.RegisterCodeSwitchToggle<UseNewCodePath>();
                builder.RegisterCodeSwitchToggle<UseNewClass>();
                builder.EnableCodeSwitchTracking();

                builder.RegisterType<Logger>()
                    .As<ILogger>();

                builder.RegisterSwitchedType<UseNewClass, IClass, TestClassV2, TestClass>();
                builder.RegisterType<TestClass>();

                _container = builder.Build();
            }
        public void Setup()
        {
            var builder = new ContainerBuilder();

            builder.RegisterModule<ConfigurationCodeFeatureCacheModule>();
            builder.RegisterModule<ConfigurationContextFeatureCacheModule<UserContext, UserContextKeyProvider>>();

            builder.RegisterCodeSwitch<DbEnabled>();
            builder.RegisterContextCodeSwitch<UseNewCodePath, UserContext>(true);

            builder.EnableCodeSwitchTracking();

            builder.RegisterType<Repository>();

            _container = builder.Build();
        }