Example #1
0
        public void It_should_throw_an_exception_when_mapped_method_is_static()
        {
            var aggregate = new IlligalStaticMethodTarget();
            var mapping   = new AttributeBasedEventHandlerMappingStrategy();

            Action act = () => mapping.GetEventHandlers(aggregate);

            act.ShouldThrow <InvalidEventHandlerMappingException>();
        }
Example #2
0
        public void It_should_throw_an_exception_when_mapped_method_does_have_more_then_one_parameter()
        {
            var aggregate = new MoreThenOneParameterMethodTarget();
            var mapping   = new AttributeBasedEventHandlerMappingStrategy();

            Action act = () => mapping.GetEventHandlers(aggregate);

            act.ShouldThrow <InvalidEventHandlerMappingException>();
        }
Example #3
0
        public void It_should_map_the_mapped_events()
        {
            var aggregate = new GoodTarget();
            var mapping   = new AttributeBasedEventHandlerMappingStrategy();

            var handlers = mapping.GetEventHandlers(aggregate);

            handlers.Count().Should().Be(5);
        }
Example #4
0
        public void It_should_throw_an_exception_when_mapped_method_does_not_have_a_DomainEvent_as_parameter()
        {
            var aggregate = new NotADomainEventTarget();
            var mapping   = new AttributeBasedEventHandlerMappingStrategy();

            Action act = () => mapping.GetEventHandlers(aggregate);

            act.ShouldThrow <InvalidEventHandlerMappingException>();
        }
Example #5
0
        public void It_should_create_the_correct_event_handlers()
        {
            var aggregate = new GoodTarget();
            var mapping   = new AttributeBasedEventHandlerMappingStrategy();

            var handlers = mapping.GetEventHandlers(aggregate);

            foreach (var handler in handlers)
            {
                handler.HandleEvent(new GoodTarget.PublicEvent());
                handler.HandleEvent(new GoodTarget.ProtectedEvent());
                handler.HandleEvent(new GoodTarget.InternalEvent());
                handler.HandleEvent(new GoodTarget.PrivateEvent());
            }

            aggregate.PublicEventHandlerInvokeCount.Should().Be(1);
            aggregate.ProtectedEventHandlerInvokeCount.Should().Be(1);
            aggregate.InternalEventHandlerInvokeCount.Should().Be(1);
            aggregate.PrivateEventHandlerInvokeCount.Should().Be(1);
            aggregate.CatchAllEventHandlerInvokeCount.Should().Be(4);
        }