Here is test demonstrating the issue

        [Test]
        public void Test()
        {
            var c = new WindsorContainer();
            var myFacilty = new MyFacilty();
            c.AddFacility("my", myFacilty);
            c.Register(Component.For<A>());
            Assert.AreEqual(HandlerState.WaitingDependency,
myFacilty.Handlers["Tests.A"].CurrentState);
            c.Register(Component.For<B>().Instance(new B()));
            Assert.AreEqual(HandlerState.Valid,
myFacilty.Handlers["Tests.A"].CurrentState);
            var a = c.Resolve<A>();
            Assert.IsTrue(myFacilty.OnHandlerStateChangedWasCalled,
"OnHandlerStateChanged was not raised");
        }

//Classes used in test

namespace Tests
{


    public class MyFacilty : AbstractFacility
    {
        public MyFacilty()
        {
            Handlers = new Dictionary<string, IHandler>();
        }

        protected override void Init()
        {
            Kernel.ComponentRegistered += KernelOnComponentRegistered;
        }

        private void KernelOnComponentRegistered(string key, IHandler
handler)
        {
            Handlers.Add(key, handler);
            if (handler.CurrentState ==
HandlerState.WaitingDependency)
            {
                handler.OnHandlerStateChanged +=
onHandlerStateChanged;
            }
        }

        private void onHandlerStateChanged(object source, EventArgs
args)
        {
            Console.WriteLine("onHandlerStateChanged");
        }

        public bool OnHandlerStateChangedWasCalled { get; set; }

        public Dictionary<string, IHandler> Handlers { get; set; }
    }


    public struct B
    {
    }

    public class A
    {
        public A(B b)
        {
        }
    }
}




-- 
You received this message because you are subscribed to the Google Groups 
"Castle Project Users" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/castle-project-users?hl=en.

Reply via email to