public void FeatureSwitcherRegistrationExtensions_Lifecycle_DisposeTransient_Test()
        {
            var mockBehaviour = new MockBooleanBehaviour(false);

            FeatureSwitcher.Configuration.Features.Are.ConfiguredBy.Custom(mockBehaviour.Behaviour);

            WindsorContainer container = new WindsorContainer();

            container.AddFacility <FeatureSwitcherFacility>();

            container.Kernel.Register(
                Component.For <ServiceConsumer>()
                .LifestyleTransient(),
                FeatureSwitch.For <IService>()
                .UsingFeature <TestFeature>()
                .ImplementedBy <ServiceEnabled, ServiceDisabled>()
                .Configure(c => c.LifestyleTransient()));

            var actualConsumer = container.Resolve <ServiceConsumer>();

            container.Release(actualConsumer);

            Assert.True(actualConsumer.Disposed);
            Assert.True(actualConsumer.Service.Disposed);
        }
        private IService Test(bool enabled)
        {
            var mockBehaviour = new MockBooleanBehaviour(enabled);

            FeatureSwitcher.Configuration.Features.Are.ConfiguredBy.Custom(mockBehaviour.Behaviour);

            WindsorContainer container = new WindsorContainer();

            container.AddFacility <FeatureSwitcherFacility>();

            container.Kernel.Register(
                FeatureSwitch.For <IService>()
                .UsingFeature <TestFeature>()
                .ImplementedBy <ServiceEnabled, ServiceDisabled>()
                .Configure(c => c.LifestyleTransient()));

            var actualService = container.Resolve <IService>();

            return(actualService);
        }