public void Should_keep_both_containers_separated_by_scope()
        {
            var builder = new ContainerBuilder();
            builder.RegisterSwitchedType<BigOn, A, BigA, LittleA>();
//            builder.RegisterType<DefaultDataProvider>()
//                .As<IDataProvider>()
//                .SingleInstance();
//
//            using (var container = builder.Build())
//            {
//                var provider = container.Resolve<IDataProvider>();
//                Assert.AreEqual("Default", provider.GetData());
//
//                var tenent = container.BeginLifetimeScope(x =>
//                    {
//                        x.RegisterType<UpperCaseDataTransformer>()
//                            .As<IDataTransformer>();
//                        x.RegisterType<CustomDataProvider>()
//                            .As<IDataProvider>()
//                            .SingleInstance();
//                    });
//
//                using(tenent)
//                {
//                    var custom = container.Resolve<IDataProvider>();
//                    Assert.AreEqual("Custom", custom.GetData());
//
//                    string upper = tenent.Resolve<IDataTransformer>().Transform("John");
//                    Assert.AreEqual("JOHN", upper);
//                }
//
//                string lower = container.Resolve<IDataTransformer>().Transform("John");
//                Assert.AreEqual("john", lower);
//            }
        }
        public void Should_return_original_registration_by_type()
        {
            var builder = new ContainerBuilder();

            builder.RegisterCodeSwitchDisabled<UseClassAv2>();

            builder.RegisterSwitchedType<UseClassAv2, A, ClassA_V2, ClassA>();

            IContainer container = builder.Build();

            var a = container.Resolve<A>();

            Assert.IsInstanceOf<ClassA>(a);
        }
            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();
            }