public async Task Should_receive_message()
        {
            var payloadToSend = new byte[PayloadSize];
            var context       = await Scenario.Define <Context>()
                                .WithEndpoint <Endpoint>(b => b.When(session => session.SendLocal(new MyMessageWithLargePayload
            {
                Payload = payloadToSend
            }))
                                                         )
                                .Done(c => c.ReceivedPayload != null)
                                .Run();

            Assert.AreEqual(payloadToSend, context.ReceivedPayload, "The large payload should be handled correctly using the kms encrypted S3 bucket");

            var s3Client          = SqsTransportExtensions.CreateS3Client();
            var getObjectResponse = await s3Client.GetObjectAsync(new GetObjectRequest
            {
                BucketName = BucketName,
                Key        = $"{SqsTransportExtensions.S3Prefix}/{context.MessageId}",
                ServerSideEncryptionCustomerMethod      = ServerSideEncryptionCustomerMethod.AES256,
                ServerSideEncryptionCustomerProvidedKey = Base64Key,
            });

            Assert.AreEqual(ServerSideEncryptionCustomerMethod.AES256, getObjectResponse.ServerSideEncryptionCustomerMethod);
            Assert.IsNull(getObjectResponse.ServerSideEncryptionMethod);
        }
コード例 #2
0
        public async Task OneTimeTearDown()
        {
            var accessKeyId     = EnvironmentHelper.GetEnvironmentVariable("CLEANUP_AWS_ACCESS_KEY_ID");
            var secretAccessKey = EnvironmentHelper.GetEnvironmentVariable("CLEANUP_AWS_SECRET_ACCESS_KEY");

            using (var sqsClient = string.IsNullOrEmpty(accessKeyId) ? SqsTransportExtensions.CreateSQSClient() :
                                   new AmazonSQSClient(accessKeyId, secretAccessKey))
                using (var snsClient = string.IsNullOrEmpty(accessKeyId) ? SqsTransportExtensions.CreateSnsClient() :
                                       new AmazonSimpleNotificationServiceClient(accessKeyId, secretAccessKey))
                    using (var s3Client = string.IsNullOrEmpty(accessKeyId) ? SqsTransportExtensions.CreateS3Client() :
                                          new AmazonS3Client(accessKeyId, secretAccessKey))
                    {
                        await Cleanup.DeleteAllResourcesWithPrefix(sqsClient, snsClient, s3Client, NamePrefix).ConfigureAwait(false);
                    }
        }
コード例 #3
0
        public async Task Should_receive_message()
        {
            var payloadToSend = new byte[PayloadSize];
            var context       = await Scenario.Define <Context>()
                                .WithEndpoint <Endpoint>(b => b.When(session => session.SendLocal(new MyMessageWithLargePayload
            {
                Payload = payloadToSend
            }))
                                                         )
                                .Done(c => c.ReceivedPayload != null)
                                .Run();

            Assert.AreEqual(payloadToSend, context.ReceivedPayload, "The large payload should be handled correctly using the unencrypted S3 bucket");

            var s3Client = SqsTransportExtensions.CreateS3Client();

            Assert.DoesNotThrowAsync(async() => await s3Client.GetObjectAsync(SqsTransportExtensions.S3BucketName, $"{SqsTransportExtensions.S3Prefix}/{context.MessageId}"));
        }