public void Register_WithAsyncTopicHandler_WithUnresgisteredTopic_ThrowsUnserializableTypeException() { // Arrange var dispatcher = new DITopicDispatcher(container); // Act TestDelegate register = () => dispatcher.RegisterAsync <Topic, IAsyncTopicHandler <Topic> >(); // Assert Assert.That(register, Throws.TypeOf <NotRegisteredException>()); }
public void Register_WithAsyncTopicHandler_WithUnserializableTopic_ThrowsUnserializableTypeException() { // Arrange var dispatcher = new DITopicDispatcher(container); var asyncHandler = new Mock <IAsyncTopicHandler <UnserializableTopic> >().Object; container.Register(asyncHandler); // Act TestDelegate register = () => dispatcher.RegisterAsync <UnserializableTopic, IAsyncTopicHandler <UnserializableTopic> >(); // Assert Assert.That(register, Throws.TypeOf <UnserializableTypeException>()); }
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); }