Esempio n. 1
0
        public void CanInstallHandlersInTheContainer()
        {
            using (IWindsorContainer container = new WindsorContainer())
            {
                //This line just forces the domain events lib to be loaded, and handlers available in the app domain.
                IProcessEvents proc = new DailyActivityEventProcessor(new Mock <IRepository <DailyActivity> >().Object);

                container.Install(new HandlerInstaller(), new RepositoryInstaller());

                ProcessStarted started     = new ProcessStarted(Guid.NewGuid(), Guid.NewGuid());
                var            handlerType = typeof(IHandleEvent <>).MakeGenericType(started.GetType());

                IEnumerable <dynamic> handlers = container.ResolveAll(handlerType).Cast <dynamic>();

                Assert.IsNotNull(handlers);
                Assert.AreEqual(2, handlers.Count());

                var handler = handlers.FirstOrDefault(o => o.GetType() == typeof(DailyActivityEventProcessor));
                Assert.IsNotNull(handler);
            }
        }