public void Should_use_parameter_override_when_resolving_component()
        {
            var specificCompA = new ComponentA();

            container.Register(
                Component.For <IComponentB>().ImplementedBy <ComponentB>()
                .With(Parameter.ForKey("compA").Eq(specificCompA))
                );

            var compb = container.Resolve <IComponentB>();

            compb.CompA.Should().Be.SameInstanceAs(specificCompA);
        }
        public void Can_supply_dependency_through_configuration()
        {
            var container = new CompactContainer();
            container.Configuration["CompactContainer.Tests.TestComponent.abc"] = 5;
            container.Register(Component.For<TestComponent>());

            var x = container.Resolve<TestComponent>();

            x.Abc.Should().Be.EqualTo(5);
        }
        public void Can_supply_dependency_through_configuration()
        {
            var container = new CompactContainer();

            container.Configuration["CompactContainer.Tests.TestComponent.abc"] = 5;
            container.Register(Component.For <TestComponent>());

            var x = container.Resolve <TestComponent>();

            x.Abc.Should().Be.EqualTo(5);
        }
        public void Should_fire_component_created_event_when_a_new_component_instaces_is_created()
        {
            var container = new CompactContainer();
            container.Register(Component.For<ComponentA>());

            var eventRisen = false;
            container.ComponentCreated += (ci, i) => { eventRisen = true; };

            container.Resolve<ComponentA>();

            eventRisen.Should().Be.True();
        }
        public void ComponentCreated_instace_parameter_should_be_equal_to_newly_created_instace()
        {
            var container = new CompactContainer();
            container.Register(Component.For<ComponentA>());

            object instance = null;
            container.ComponentCreated += (ci, i) => instance = i;

            var componentA = container.Resolve<ComponentA>();

            instance.Should().Be.EqualTo(componentA);
        }
        public void ComponentCreated_component_info_parameter_should_match_recently_added_component_info()
        {
            var container = new CompactContainer();
            container.Register(Component.For<ComponentA>());

            Type componentType = null;
            container.ComponentCreated += (ci, i) => componentType = ci.Classtype;

            container.Resolve<ComponentA>();

            componentType.Should().Be.EqualTo(typeof (ComponentA));
        }
        public void Can_select_implementation_according_to_registered_component_selector()
        {
            var container = new CompactContainer();

            container.Register(AllTypes.FromAssembly(Assembly.GetExecutingAssembly())
                               	.BasedOn<IService>()
                                .BasedOn<IComponentSelector>()
                );
            container.RegisterComponentSelector(new ServiceSelector());

            var service = container.Resolve<IService>();
            service.Should().Be.OfType<ComplexService>();
        }
Ejemplo n.º 8
0
        public void Can_select_implementation_according_to_registered_component_selector()
        {
            var container = new CompactContainer();

            container.Register(AllTypes.FromAssembly(Assembly.GetExecutingAssembly())
                               .BasedOn <IService>()
                               .BasedOn <IComponentSelector>()
                               );
            container.RegisterComponentSelector(new ServiceSelector());

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

            service.Should().Be.OfType <ComplexService>();
        }
        public void ComponentCreated_instace_parameter_should_be_equal_to_newly_created_instace()
        {
            var container = new CompactContainer();

            container.Register(Component.For <ComponentA>());

            object instance = null;

            container.ComponentCreated += (ci, i) => instance = i;

            var componentA = container.Resolve <ComponentA>();

            instance.Should().Be.EqualTo(componentA);
        }
        public void ComponentCreated_component_info_parameter_should_match_recently_added_component_info()
        {
            var container = new CompactContainer();

            container.Register(Component.For <ComponentA>());

            Type componentType = null;

            container.ComponentCreated += (ci, i) => componentType = ci.Classtype;

            container.Resolve <ComponentA>();

            componentType.Should().Be.EqualTo(typeof(ComponentA));
        }
        public void Should_fire_component_created_event_when_a_new_component_instaces_is_created()
        {
            var container = new CompactContainer();

            container.Register(Component.For <ComponentA>());

            var eventRisen = false;

            container.ComponentCreated += (ci, i) => { eventRisen = true; };

            container.Resolve <ComponentA>();

            eventRisen.Should().Be.True();
        }
Ejemplo n.º 12
0
        public void A_single_instances_should_be_returned_for_resolve_calls_for_singleton_components()
        {
            container.Register(Component.For <IComponentA>().ImplementedBy <ComponentA>().Named("comp.a"));

            var compA1 = (IComponentA)container.Resolve(typeof(IComponentA));
            var compA2 = (IComponentA)container.Resolve("comp.a");

            compA1.Should().Not.Be.Null();
            compA1.Should().Be.SameInstanceAs(compA2);
        }