public void OnEnrichEvent_EnrichEventIsNull_ShouldNotThrowException()
        {
            // Arrange
            var handlers = new CommandProcessorNotificationHandlers();

            handlers.EnrichEvent = null;

            // Act & Assert
            Action action = () => handlers.OnEnrichEvent(null, null, null);

            action.Should().NotThrow();
        }
        public void OnEnrichEvent_EnrichEventIsSet_ShouldCallEnrichEvent()
        {
            // Arrange
            var @event        = new Mock <object>().Object;
            var command       = new Mock <object>().Object;
            var enrichedEvent = new Mock <object>().Object;
            var context       = new CommandHandlingContext();
            var handlers      = new CommandProcessorNotificationHandlers();
            var handlerMock   = new Mock <Func <object, object, CommandHandlingContext, object> >();

            handlerMock.Setup(x => x(@event, command, context)).Returns(enrichedEvent);
            handlers.EnrichEvent = handlerMock.Object;

            // Act
            var result = handlers.OnEnrichEvent(@event, command, context);

            // Assert
            handlerMock.Verify(x => x(@event, command, context), Times.Once);
            result.Should().Be(enrichedEvent);
        }