public void ResolvingPrimitivesThroughProperties()
        {
            MutableConfiguration config = new MutableConfiguration("component");

            MutableConfiguration parameters = (MutableConfiguration )
                                              config.Children.Add(new MutableConfiguration("parameters"));

            parameters.Children.Add(new MutableConfiguration("name", "hammett"));
            parameters.Children.Add(new MutableConfiguration("address", "something"));
            parameters.Children.Add(new MutableConfiguration("age", "25"));

            kernel.ConfigurationStore.AddComponentConfiguration("customer", config);

            kernel.AddComponent("customer", typeof(ICustomer), typeof(CustomerImpl));

            expectedClient = kernel.GetHandler("customer").ComponentModel;
            expectedModels = new ArrayList();
            foreach (PropertySet prop in kernel.GetHandler("customer").ComponentModel.Properties)
            {
                expectedModels.Add(prop.Dependency);
            }

            ICustomer customer = (ICustomer)kernel["customer"];

            Assert.IsNotNull(customer);
        }
        private void AssertEvent(Castle.Model.ComponentModel client, Castle.Model.DependencyModel model, object dependency)
        {
            bool ok = false;

            Assert.AreEqual(expectedClient, client);
            foreach (DependencyModel expectedModel in expectedModels)
            {
                if (expectedModel.Equals(model))
                {
                    ok = true;
                    break;
                }
            }
            Assert.IsTrue(ok);
            Assert.IsNotNull(dependency);
        }
        public void ResolvingConcreteClassThroughConstructor()
        {
            kernel.AddComponent("spamservice", typeof(DefaultSpamServiceWithConstructor));
            kernel.AddComponent("mailsender", typeof(DefaultMailSenderService));
            kernel.AddComponent("templateengine", typeof(DefaultTemplateEngine));

            DefaultMailSenderService mailservice    = (DefaultMailSenderService)kernel["mailsender"];
            DefaultTemplateEngine    templateengine = (DefaultTemplateEngine)kernel["templateengine"];

            Assert.IsNotNull(mailservice);
            Assert.IsNotNull(templateengine);

            expectedClient = kernel.GetHandler("spamservice").ComponentModel;
            expectedModels = new ArrayList(kernel.GetHandler("spamservice").ComponentModel.Constructors.FewerArgumentsCandidate.Dependencies);

            DefaultSpamServiceWithConstructor spamservice =
                (DefaultSpamServiceWithConstructor)kernel["spamservice"];

            Assert.IsNotNull(spamservice);
        }
        public void ResolvingConcreteClassThroughProperties()
        {
            kernel.AddComponent("spamservice", typeof(DefaultSpamService));
            kernel.AddComponent("mailsender", typeof(DefaultMailSenderService));
            kernel.AddComponent("templateengine", typeof(DefaultTemplateEngine));

            DefaultMailSenderService mailservice    = (DefaultMailSenderService)kernel["mailsender"];
            DefaultTemplateEngine    templateengine = (DefaultTemplateEngine)kernel["templateengine"];

            Assert.IsNotNull(mailservice);
            Assert.IsNotNull(templateengine);

            expectedClient = kernel.GetHandler("spamservice").ComponentModel;
            expectedModels = new ArrayList();
            foreach (PropertySet prop in kernel.GetHandler("spamservice").ComponentModel.Properties)
            {
                expectedModels.Add(prop.Dependency);
            }

            DefaultSpamService spamservice = (DefaultSpamService)kernel["spamservice"];

            Assert.IsNotNull(spamservice);
        }