public void Handle_WithNoHandlerRegistered_DoesNothing() { // Arrange var dispatcher = new DITopicDispatcher(container); // Act TestDelegate handle = () => dispatcher.Handle(subscriber, topic); // Assert Assert.That(handle, Throws.Nothing); }
public void Handle_WithAsyncHandlerRegistered_CallsHandler() { // Arrange var dispatcher = new DITopicDispatcher(container); dispatcher.Register(asyncHandler); // Act dispatcher.Handle(subscriber, topic); // Assert mockAsyncHandler.Verify(m => m.Handle(It.IsIn(topic)), Times.Once); }
public void Handle_WithBaseClassHandlerRegistered_DoesNothing() { // Arrange var dispatcher = new DITopicDispatcher(container); dispatcher.Register(handler); var topic = new SubTopic(); // Act dispatcher.Handle(subscriber, topic); // Assert mockHandler.Verify(m => m.Handle(It.IsAny <Topic>()), Times.Never); }
public void Handle_WithHandlerDelegateRegistered_CallsHandler() { // Arrange var handled = false; var dispatcher = new DITopicDispatcher(container); dispatcher.Register <Topic>(e => { handled = true; }); // Act dispatcher.Handle(subscriber, topic); // Assert Assert.That(handled, Is.True); }
public void Handle_WithContainerResolvedHandler_ResolvesFromContainer() { // Arrange var dispatcher = new DITopicDispatcher(container); mockContainer.Setup(m => m.IsRegistered <ITopicHandler <Topic> >()).Returns(true); mockContainer.Setup(m => m.Resolve <ITopicHandler <Topic> >()).Returns(handler); dispatcher.Register <Topic, ITopicHandler <Topic> >(); // Act dispatcher.Handle(subscriber, topic); // Assert mockContainer.Verify(m => m.Resolve <ITopicHandler <Topic> >(), Times.Once); }
public void Handle_WithContainerResolvedAsyncHandler_HandlesTopic() { // Arrange var dispatcher = new DITopicDispatcher(container); mockContainer.Setup(m => m.IsRegistered <IAsyncTopicHandler <Topic> >()).Returns(true); mockContainer.Setup(m => m.Resolve <IAsyncTopicHandler <Topic> >()).Returns(asyncHandler); dispatcher.RegisterAsync <Topic, IAsyncTopicHandler <Topic> >(); // Act dispatcher.Handle(subscriber, topic); // Assert mockAsyncHandler.Verify(m => m.Handle(It.IsIn(topic)), Times.Once); }