コード例 #1
0
        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>());
        }
コード例 #2
0
        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>());
        }
コード例 #3
0
        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);
        }