public async Task EventGrid_ShouldCallAllValidHandlers_WhenMoreThanOneHandleMatches()
        {
            // Arrange
            EventGridEvent        testEvent = new EventGridEvent();
            List <EventGridEvent> events    = new List <EventGridEvent> {
                testEvent
            };
            var handler1 = Mock.Of <IEventGridHandler>();
            var handler2 = Mock.Of <IEventGridHandler>();

            _eventGridDispatcher = new EventGridDispatcher(_logger, new List <IEventGridHandler> {
                handler1, handler2
            });

            // Arrange Mocks
            Mock.Get(handler1)
            .Setup(x => x.HandlesEvent(It.IsAny <string>(), It.IsAny <string>()))
            .Returns(true);
            Mock.Get(handler2)
            .Setup(x => x.HandlesEvent(It.IsAny <string>(), It.IsAny <string>()))
            .Returns(true);

            // Act
            var result = await _eventGridDispatcher.DispatchEventGridEvents(events).ConfigureAwait(true);

            // Assert
            result.ShouldBeEquivalentTo(new OkResult());
            Mock.Get(handler1).Verify(x =>
                                      x.HandleAsync(It.IsAny <EventGridEvent>()), Times.Once);
            Mock.Get(handler2).Verify(x =>
                                      x.HandleAsync(It.IsAny <EventGridEvent>()), Times.Once);
        }
 public EventGridDispatcherTests()
 {
     _logger              = Mock.Of <IObjectLogger <EventGridDispatcher> >();
     _eventGridHandler    = Mock.Of <IEventGridHandler>();
     _eventGridDispatcher = new EventGridDispatcher(_logger, new List <IEventGridHandler> {
         _eventGridHandler
     });
 }