public void Should_Return_Null_When_Type_Is_Not_Instantiated()
        {
            var container = new WindsorContainer();
            container.Register(Component.For<IPerson>().ImplementedBy<PersonA>());

            TestClass instance = null;

            Assert.IsNull(container.BuildUp(instance));
        }
        public void Should_Not_Inject_Dependency_When_Injected_Property_Is_Instantiated()
        {
            var container = new WindsorContainer();
            container.Register(Component.For<IPerson>().ImplementedBy<PersonA>());

            var instance = new TestClass() { Person = new PersonB() };

            container.BuildUp(instance);

            Assert.IsInstanceOf<PersonB>(instance.Person);
        }
        public void Should_Not_Inject_Dependency_When_Property_Is_Not_Decorated_With_Dependency_Attribute()
        {
            var container = new WindsorContainer();
            container.Register(Component.For<IPerson>().ImplementedBy<PersonA>());

            var instance = new TestClass() { Person = new PersonB() };

            container.BuildUp(instance);

            Assert.IsNull(instance.AnotherPerson);
        }
        public void Should_Inject_Dependency()
        {
            var container = new WindsorContainer();
            container.Register(Component.For<IPerson>().ImplementedBy<PersonA>());

            var instance = new TestClass();

            container.BuildUp(instance);

            Assert.IsInstanceOf<PersonA>(instance.Person);
        }