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 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");
        }