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>(); }
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>(); }
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); }
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>(); }
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); }