public CheckForMessagesShould() { expectedQueueUrl = "QueueUrl"; queueInfo = new QueueInfo(typeof(TestMessage), expectedQueueUrl); var queues = new Dictionary <string, QueueInfo>(); queues.Add("", queueInfo); var messageBusMock = new Mock <IMessageBus>(); sqsServiceMock = new Mock <ISqsService>(); var messageDeserializerMock = new Mock <IMessageDeserializer>(); handlerMock = new Mock <IHandlerAsync <TestMessage> >(); messageBusMock.Setup(x => x.Queues).Returns(queues); messageBusMock.Setup(x => x.GetHandler <TestMessage>()).Returns(handlerMock.Object); expectedMessage = new TestMessage(); var response = new Amazon.SQS.Model.ReceiveMessageResponse(); busMessage = new Amazon.SQS.Model.Message(); busMessage.ReceiptHandle = "Recipt001"; response.Messages.Add(busMessage); sqsServiceMock.Setup(x => x.ReceiveMessageAsync(expectedQueueUrl)).Returns(Task.FromResult(response)); messageDeserializerMock.Setup(x => x.Deserialize <TestMessage>(busMessage)).Returns(expectedMessage); sut = new MessageBusListener(messageBusMock.Object, sqsServiceMock.Object, messageDeserializerMock.Object); }
public void ReceiveMessagesForQueue() { var expectedQueueUrl = "QueueUrl"; var queues = new Dictionary <string, QueueInfo>(); queues.Add("", new QueueInfo(typeof(TestMessage), expectedQueueUrl)); var messageBusMock = new Mock <IMessageBus>(); var sqsServiceMock = new Mock <ISqsService>(); var messageDeserializerMock = new Mock <IMessageDeserializer>(); messageBusMock.Setup(x => x.Queues).Returns(queues); var sut = new MessageBusListener(messageBusMock.Object, sqsServiceMock.Object, messageDeserializerMock.Object); sut.StartListening(); sqsServiceMock.Verify(x => x.ReceiveMessageAsync(expectedQueueUrl)); }
private void InternalSubscribe(IListener listener, Type messageType) { var internalListener = _listeners .FirstOrDefault(l => l.Listener.TryGetTarget(out var target) && ReferenceEquals(target, listener)); if (internalListener != null) { if (internalListener.Handlers.Any(h => h.MessageType == messageType)) { return; } } else { internalListener = new MessageBusListener(listener); _listeners.Add(internalListener); } internalListener.Handlers.Add(new MessageBusHandler(messageType)); }