async Task SendPoisonMessage(string inputQueueName) { var transport = new TransportExtensions <SqsTransport>(new SettingsHolder()); transport = transport.ConfigureSqsTransport(SetupFixture.NamePrefix); var transportConfiguration = new TransportConfiguration(transport.GetSettings()); using (var sqsClient = SqsTransportExtensions.CreateSQSClient()) { var getQueueUrlResponse = await sqsClient.GetQueueUrlAsync(new GetQueueUrlRequest { QueueName = QueueCache.GetSqsQueueName(inputQueueName, transportConfiguration) }).ConfigureAwait(false); await sqsClient.SendMessageAsync(new SendMessageRequest { QueueUrl = getQueueUrlResponse.QueueUrl, MessageBody = PoisonMessageBody }).ConfigureAwait(false); } }
async Task CheckErrorQueue(string errorQueueName, CancellationToken cancellationToken) { var transport = new TransportExtensions <SqsTransport>(new SettingsHolder()); transport = transport.ConfigureSqsTransport(SetupFixture.NamePrefix); var transportConfiguration = new TransportConfiguration(transport.GetSettings()); using (var sqsClient = SqsTransportExtensions.CreateSQSClient()) { var getQueueUrlResponse = await sqsClient.GetQueueUrlAsync(new GetQueueUrlRequest { QueueName = QueueCache.GetSqsQueueName(errorQueueName, transportConfiguration) }, cancellationToken).ConfigureAwait(false); var messageReceived = false; ReceiveMessageResponse receiveMessageResponse = null; while (messageReceived == false && !cancellationToken.IsCancellationRequested) { receiveMessageResponse = await sqsClient.ReceiveMessageAsync(new ReceiveMessageRequest { QueueUrl = getQueueUrlResponse.QueueUrl, WaitTimeSeconds = 20 }, cancellationToken).ConfigureAwait(false); if (receiveMessageResponse.Messages.Any()) { messageReceived = true; } } Assert.NotNull(receiveMessageResponse); Assert.AreEqual(1, receiveMessageResponse.Messages.Count); Assert.AreEqual(PoisonMessageBody, receiveMessageResponse.Messages.Single().Body); } }