public void WaitForMessage_WithMessageInQueue_ShouldSucceed() { // Setup // TODO: Replace this with a mocked factory. IAwsClientFactory awsClientFactory = new AwsClientFactory(); ITaskLogger logger = new NullLogger(); var sendMessageTask = new SendSQSMessageTask(awsClientFactory, logger) { QueueUrl = _queueUrl, MessageBody = "Test Wait for Mesage", EncryptionContainerName = TestHelper.EncryptionContainerName, }; Assert.IsTrue(sendMessageTask.Execute(), "Failed to send setup message"); // Message should have appeared in the 60 seconds timeout var task = new WaitForSQSMessageTask(awsClientFactory, logger) { QueueUrl = _queueUrl, TimeOutSeconds = 60, PollIntervalSeconds = 1, EncryptionContainerName = TestHelper.EncryptionContainerName, }; // Execute bool suceeded = task.Execute(); // Test Assert.IsTrue(suceeded, "Did not suceeded"); Assert.IsNotNullOrEmpty(task.MessageBody, "MessageBody"); Assert.IsNotNullOrEmpty(task.MessageId, "MessageId"); Assert.IsNotNullOrEmpty(task.ReceiptHandle, "ReceiptHandle"); }
public void CreateQueueTwice_Should_Succeed() { // Setup // TODO: Replace this with a mocked factory. IAwsClientFactory awsClientFactory = new AwsClientFactory(); ITaskLogger logger = new NullLogger(); var task = new CreateSQSQueueTask(awsClientFactory, logger) { EncryptionContainerName = TestHelper.EncryptionContainerName, QueueName = "TestQ" }; var task2 = new CreateSQSQueueTask(awsClientFactory, logger) { EncryptionContainerName = TestHelper.EncryptionContainerName, QueueName = "TestQ" }; // Execute bool suceeded = task.Execute(); bool suceeded2 = task2.Execute(); // Test Assert.IsTrue(suceeded, "Did not suceed"); Assert.IsTrue(suceeded2, "Task 2 did not suceed"); Assert.IsNotNullOrEmpty(task.QueueUrl, "QueueUrl"); Assert.AreEqual(task.QueueUrl, task2.QueueUrl, "Second queue url did not match first"); }
public void CreateQueue_Should_CreateQueue() { // Setup // TODO: Replace this with a mocked factory. IAwsClientFactory awsClientFactory = new AwsClientFactory(); ITaskLogger logger = new NullLogger(); var task = new CreateSQSQueueTask(awsClientFactory, logger) { EncryptionContainerName = TestHelper.EncryptionContainerName, QueueName = "TestQ" }; // Execute bool suceeded = task.Execute(); // Test Assert.IsTrue(suceeded, "Did not suceed"); Assert.IsNotNullOrEmpty(task.QueueUrl, "QueueUrl"); }
public void WaitForMessage_WithNoMessage_ShouldFail() { // Setup // TODO: Replace this with a mocked factory. IAwsClientFactory awsClientFactory = new AwsClientFactory(); ITaskLogger logger = new NullLogger(); var task = new WaitForSQSMessageTask(awsClientFactory, logger) { QueueUrl = _queueUrl, TimeOutSeconds = 10, PollIntervalSeconds = 5, EncryptionContainerName = TestHelper.EncryptionContainerName, }; // Execute bool suceeded = task.Execute(); // Test Assert.IsFalse(suceeded, "Should not have suceeded"); }
public void DeleteQueue_Should_DeleteQueue() { // Setup // TODO: Replace this with a mocked factory. IAwsClientFactory awsClientFactory = new AwsClientFactory(); ITaskLogger logger = new NullLogger(); // Create a queue to delete. string queueUrl = TestHelper.CreateQueue("TestQ", TestHelper.EncryptionContainerName); var task = new DeleteSQSQueueTask(awsClientFactory, logger) { QueueUrl = queueUrl, EncryptionContainerName = TestHelper.EncryptionContainerName }; // Execute bool suceeded = task.Execute(); // Test Assert.IsTrue(suceeded, "Did not suceed"); }
public void SendMessage_Should_ReturnMessageId() { // Setup // TODO: Replace this with a mocked factory. IAwsClientFactory awsClientFactory = new AwsClientFactory(); ITaskLogger logger = new NullLogger(); const string messageBody = "TestMessageBody"; var task = new SendSQSMessageTask(awsClientFactory, logger) { QueueUrl = _queueUrl, MessageBody = messageBody, EncryptionContainerName = TestHelper.EncryptionContainerName }; // Execute bool suceeded = task.Execute(); // Test Assert.IsTrue(suceeded, "Did not suceed"); Assert.IsNotNullOrEmpty(task.MessageId, "MessageId"); }
public void ReceiveMessage_Should_ReceiveMessage() { // Setup // TODO: Replace this with a mocked factory. IAwsClientFactory awsClientFactory = new AwsClientFactory(); ITaskLogger logger = new NullLogger(); // Add a message to the queue to ensure that their is one and wait for 2 seconds to allow // the message to propogate. // Add the time on to ensure the correct message is received. string expectedMessage = "Sample test message " + DateTime.Now.ToLongTimeString(); var sendSqsMessageTask = new SendSQSMessageTask(awsClientFactory, logger) { QueueUrl = _queueUrl, MessageBody = expectedMessage, EncryptionContainerName = TestHelper.EncryptionContainerName, }; sendSqsMessageTask.Execute(); // Messages can be very slow to appear on the queue. Thread.Sleep(60000); var task = new ReceiveSQSMessageTask(awsClientFactory, logger) { QueueUrl = _queueUrl, EncryptionContainerName = TestHelper.EncryptionContainerName, }; // Execute bool suceeded = task.Execute(); // Test Assert.IsTrue(suceeded, "Did not suceed"); Assert.IsTrue(task.HasMessage, "No message"); Assert.IsNotNullOrEmpty(expectedMessage, task.MessageBody, "MessageId"); }