Inheritance: ISubDependencyResolver
		public void WillAskResolverWhenTryingToResolveDependencyAfterAnotherHandlerWasRegistered()
		{
			FooBarResolver resolver = new FooBarResolver();

			IKernel kernel = new DefaultKernel();
			kernel.Resolver.AddSubResolver(resolver);

			kernel.AddComponent("foo", typeof(Foo));
			IHandler handler = kernel.GetHandler("foo");
			Assert.AreEqual(HandlerState.WaitingDependency, handler.CurrentState);

			resolver.Result = 15;

			kernel.RaiseHandlerRegistered(null);//should force reevaluation of state

			Assert.AreEqual(HandlerState.Valid, handler.CurrentState);
		}
		public void WillAskResolverWhenTryingToResolveDependencyAfterAnotherHandlerWasRegistered()
		{
			var resolver = new FooBarResolver();

			IKernel kernel = new DefaultKernel();
			kernel.Resolver.AddSubResolver(resolver);

			kernel.Register(Component.For<Foo>());
			var handler = kernel.GetHandler(typeof(Foo));

			Assert.AreEqual(HandlerState.WaitingDependency, handler.CurrentState);

			resolver.Result = 15;

			kernel.Register(Component.For<A>());

			Assert.AreEqual(HandlerState.Valid, handler.CurrentState);
		}
        public void WillAskResolverWhenTryingToResolveDependencyAfterAnotherHandlerWasRegistered()
        {
            var resolver = new FooBarResolver();

            IKernel kernel = new DefaultKernel();

            kernel.Resolver.AddSubResolver(resolver);

            kernel.Register(Component.For <Foo>());
            var handler = kernel.GetHandler(typeof(Foo));

            Assert.AreEqual(HandlerState.WaitingDependency, handler.CurrentState);

            resolver.Result = 15;

            kernel.Register(Component.For <A>());

            Assert.AreEqual(HandlerState.Valid, handler.CurrentState);
        }