示例#1
0
        public void Should_be_able_to_test_raising_a_domain_event()
        {
            var          @event       = new SomethingAwesomeHappened();
            IDomainEvent rasisedEvent = null;

            DomainEvent.RaiseAction = e => rasisedEvent = e;
            DomainEvent.Raise(@event);

            rasisedEvent.ShouldBeTheSameAs(@event);

            DomainEvent.RaiseAction = null;
        }
示例#2
0
        public void Should_execute_handlers_on_event()
        {
            var messages = new System.Collections.Generic.List <string>();

            using (var container = new WindsorContainer()
                                   .Register(
                       Component.For <Action <string> >().Instance(messages.Add),
                       AllTypes.FromAssembly(Assembly.GetExecutingAssembly())
                       .BasedOn(typeof(IHandle <>)).WithService.Base()
                       .Configure(c => c.LifeStyle.Transient)
                       ))
            {
                DomainEvent.ReturnContainer = () => container;

                var @event = new SomethingAwesomeHappened();
                DomainEvent.Raise(@event);

                DomainEvent.ReturnContainer = null;
            }

            messages.Count.ShouldEqual(2);
            messages[0].ShouldEqual("handler1");
            messages[1].ShouldEqual("handler2");
        }