public void ShouldGetTheCorrectHandlerTypesFromContainer() { // Arrange var bus = new MessageBus.Bus(_mockConfiguration.Object); var handlerReferences = new List<HandlerReference> { new HandlerReference { HandlerType = typeof (FakeHandler1), MessageType = typeof (FakeMessage1) }, new HandlerReference { HandlerType = typeof (FakeHandler2), MessageType = typeof (FakeMessage2) } }; _mockContainer.Setup(x => x.GetHandlerTypes()).Returns(handlerReferences); _mockConsumer.Setup(x => x.StartConsuming(It.Is<ConsumerEventHandler>(y => AssignEventHandler(y)), It.IsAny<string>(), It.IsAny<string>())); _mockContainer.Setup(x => x.GetHandlerTypes(typeof(IMessageHandler<FakeMessage1>))).Returns(new List<HandlerReference>()); bus.StartConsuming(); // Act _fakeEventHandler(Encoding.UTF8.GetBytes(_serializer.Serialize(new FakeMessage1(Guid.NewGuid()) { Username = "******" }))); // Assert _mockContainer.Verify(x => x.GetHandlerTypes(It.Is<Type>(y => y == typeof(IMessageHandler<FakeMessage1>))), Times.Once()); }
public void ShouldCreateAConsumerForEachHandler() { // Arrange var bus = new MessageBus.Bus(_mockConfiguration.Object); var handlerReferences = new List<HandlerReference> { new HandlerReference { HandlerType = typeof (FakeHandler1), MessageType = typeof (FakeMessage1) }, new HandlerReference { HandlerType = typeof (FakeHandler2), MessageType = typeof (FakeMessage2) } }; _mockContainer.Setup(x => x.GetHandlerTypes()).Returns(handlerReferences); // Act bus.StartConsuming(); // Assert _mockConfiguration.Verify(x => x.GetConsumer(), Times.Exactly(2)); _mockContainer.VerifyAll(); }
public void ShouldGetAllHandlerTypesFromContainer() { // Arrange var bus = new MessageBus.Bus(_mockConfiguration.Object); _mockContainer.Setup(x => x.GetHandlerTypes()).Returns(new List<HandlerReference>()); // Act bus.StartConsuming(); // Assert _mockContainer.Verify(x => x.GetHandlerTypes(), Times.Once); _mockContainer.VerifyAll(); }
public void ShouldExecuteTheCorrectHandlers() { // Arrange var bus = new MessageBus.Bus(_mockConfiguration.Object); var message1HandlerReference = new HandlerReference { HandlerType = typeof (FakeHandler1), MessageType = typeof (FakeMessage1) }; var handlerReferences = new List<HandlerReference> { message1HandlerReference, new HandlerReference { HandlerType = typeof (FakeHandler2), MessageType = typeof (FakeMessage2) } }; _mockContainer.Setup(x => x.GetHandlerTypes()).Returns(handlerReferences); _mockConsumer.Setup(x => x.StartConsuming(It.Is<ConsumerEventHandler>(y => AssignEventHandler(y)), It.IsAny<string>(), It.IsAny<string>())); _mockContainer.Setup(x => x.GetHandlerTypes(typeof(IMessageHandler<FakeMessage1>))).Returns(new List<HandlerReference> { message1HandlerReference }); var fakeHandler = new FakeHandler1(); _mockContainer.Setup(x => x.GetInstance(typeof (FakeHandler1))).Returns(fakeHandler); bus.StartConsuming(); // Act var message1 = new FakeMessage1(Guid.NewGuid()) { Username = "******" }; _fakeEventHandler(Encoding.UTF8.GetBytes(_serializer.Serialize(message1))); var message2 = new FakeMessage2(Guid.NewGuid()) { DisplayName = "Tim Watson" }; _fakeEventHandler(Encoding.UTF8.GetBytes(_serializer.Serialize(message2))); // Assert Assert.Equal(message1.CorrelationId, fakeHandler.Command.CorrelationId); Assert.Equal(message1.Username, fakeHandler.Command.Username); _mockContainer.Verify(x => x.GetInstance(typeof (FakeHandler2)), Times.Never); }
public void ShouldStartConsumingAllMessagesFromTheContainer() { // Arrange var bus = new MessageBus.Bus(_mockConfiguration.Object); var handlerReferences = new List<HandlerReference> { new HandlerReference { HandlerType = typeof (FakeHandler1), MessageType = typeof (FakeMessage1) }, new HandlerReference { HandlerType = typeof (FakeHandler2), MessageType = typeof (FakeMessage2) } }; _mockContainer.Setup(x => x.GetHandlerTypes()).Returns(handlerReferences); // Act bus.StartConsuming(); // Assert _mockConsumer.Verify(x => x.StartConsuming(It.IsAny<ConsumerEventHandler>(), "RMessageBusUnitTestsFakesMessagesFakeMessage1", ".FakeMessage1"), Times.Once); _mockConsumer.Verify(x => x.StartConsuming(It.IsAny<ConsumerEventHandler>(), "RMessageBusUnitTestsFakesMessagesFakeMessage2", ".FakeMessage2"), Times.Once); _mockConsumer.VerifyAll(); }