public void HybridBeans()
        {
            SetterInjectionComponentAdapter bAdapter     = new SetterInjectionComponentAdapter("b", typeof(B));
            SetterInjectionComponentAdapter cAdapter     = new SetterInjectionComponentAdapter("c", typeof(C));
            SetterInjectionComponentAdapter cNullAdapter = new SetterInjectionComponentAdapter("c0", typeof(C));

            IMutablePicoContainer pico = new DefaultPicoContainer();

            pico.RegisterComponent(bAdapter);
            pico.RegisterComponent(cAdapter);
            pico.RegisterComponent(cNullAdapter);
            pico.RegisterComponentImplementation(typeof(ArrayList));

            C c = (C)cAdapter.GetComponentInstance(pico);

            Assert.IsTrue(c.instantiatedAsBean());
            C c0 = (C)cNullAdapter.GetComponentInstance(pico);

            Assert.IsTrue(c0.instantiatedAsBean());
        }
        public void AllUnsatisfiableDependenciesAreSignalled()
        {
            SetterInjectionComponentAdapter aAdapter = new SetterInjectionComponentAdapter("a", typeof(A));
            SetterInjectionComponentAdapter bAdapter = new SetterInjectionComponentAdapter("b", typeof(B));

            IMutablePicoContainer pico = new DefaultPicoContainer();

            pico.RegisterComponent(bAdapter);
            pico.RegisterComponent(aAdapter);

            try
            {
                aAdapter.GetComponentInstance(pico);
            }
            catch (UnsatisfiableDependenciesException e)
            {
                Assert.IsTrue(e.UnsatisfiableDependencies.Contains(typeof(IList)));
                Assert.IsTrue(e.UnsatisfiableDependencies.Contains(typeof(string)));
            }
        }
		public void HybridBeans()
		{
			SetterInjectionComponentAdapter bAdapter = new SetterInjectionComponentAdapter("b", typeof (B), null);
			SetterInjectionComponentAdapter cAdapter = new SetterInjectionComponentAdapter("c", typeof (C), null);
			SetterInjectionComponentAdapter cNullAdapter = new SetterInjectionComponentAdapter("c0", typeof (C), null);

			IMutablePicoContainer pico = new DefaultPicoContainer();
			pico.RegisterComponent(bAdapter);
			pico.RegisterComponent(cAdapter);
			pico.RegisterComponent(cNullAdapter);
			pico.RegisterComponentImplementation(typeof (ArrayList));

			C c = (C) cAdapter.GetComponentInstance(pico);
			Assert.IsTrue(c.instantiatedAsBean());
			C c0 = (C) cNullAdapter.GetComponentInstance(pico);
			Assert.IsTrue(c0.instantiatedAsBean());
		}
		public void AllUnsatisfiableDependenciesAreSignalled()
		{
			SetterInjectionComponentAdapter aAdapter = new SetterInjectionComponentAdapter("a", typeof (A), null);
			SetterInjectionComponentAdapter bAdapter = new SetterInjectionComponentAdapter("b", typeof (B), null);

			IMutablePicoContainer pico = new DefaultPicoContainer();
			pico.RegisterComponent(bAdapter);
			pico.RegisterComponent(aAdapter);

			try
			{
				aAdapter.GetComponentInstance(pico);
			}
			catch (UnsatisfiableDependenciesException e)
			{
				Assert.IsTrue(e.UnsatisfiableDependencies.Contains(typeof (IList)));
				Assert.IsTrue(e.UnsatisfiableDependencies.Contains(typeof (string)));
			}
		}