From eb24ff8cd42fd01e6e1407645de7fdeab2ff0d08 Mon Sep 17 00:00:00 2001 From: Francisco Date: Thu, 25 Feb 2021 11:04:43 +0100 Subject: [PATCH 1/3] Added tests to show the exception on the SES client V2 --- pom.xml | 6 ++ .../cloud/localstack/SESMessagingTest.java | 66 +++++++++++++++++++ 2 files changed, 72 insertions(+) diff --git a/pom.xml b/pom.xml index 6683ebb..3b7d438 100644 --- a/pom.xml +++ b/pom.xml @@ -145,6 +145,12 @@ dynamodb ${aws.sdkv2.version} + + software.amazon.awssdk + ses + ${aws.sdkv2.version} + provided + software.amazon.awssdk sns diff --git a/src/test/java/cloud/localstack/SESMessagingTest.java b/src/test/java/cloud/localstack/SESMessagingTest.java index ab96aed..f15f61e 100644 --- a/src/test/java/cloud/localstack/SESMessagingTest.java +++ b/src/test/java/cloud/localstack/SESMessagingTest.java @@ -2,6 +2,7 @@ import cloud.localstack.awssdkv1.TestUtils; +import java.net.URI; import java.util.UUID; import com.amazonaws.services.simpleemail.AmazonSimpleEmailService; @@ -11,6 +12,13 @@ import org.junit.Assert; import org.junit.Test; import org.junit.runner.RunWith; +import software.amazon.awssdk.auth.credentials.AwsBasicCredentials; +import software.amazon.awssdk.auth.credentials.StaticCredentialsProvider; +import software.amazon.awssdk.regions.Region; +import software.amazon.awssdk.services.ses.SesClient; +import software.amazon.awssdk.services.ses.model.CreateTemplateResponse; +import software.amazon.awssdk.services.ses.model.GetSendStatisticsResponse; +import software.amazon.awssdk.services.ses.model.SendTemplatedEmailResponse; /** * Test integration of SES messaging with LocalStack @@ -128,4 +136,62 @@ public void testSendTemplatedEmail() throws Throwable { SendTemplatedEmailResult result = client.sendTemplatedEmail(request); Assert.assertNotNull(result); } + + @Test + public void testSendTemplatedEmailV2() throws Throwable { + SesClient client = SesClient.builder() + .credentialsProvider(StaticCredentialsProvider.create(AwsBasicCredentials.create("access", "secret"))) + .region(Region.of(Localstack.INSTANCE.getDefaultRegion())) + .endpointOverride(new URI(Localstack.INSTANCE.getEndpointSES())) + .build(); + + software.amazon.awssdk.services.ses.model.VerifyEmailAddressRequest verifyEmailAddressRequestTo = software.amazon.awssdk.services.ses.model.VerifyEmailAddressRequest.builder().emailAddress(TO).build(); + client.verifyEmailAddress(verifyEmailAddressRequestTo); + + software.amazon.awssdk.services.ses.model.VerifyEmailAddressRequest verifyEmailAddressRequestFrom = software.amazon.awssdk.services.ses.model.VerifyEmailAddressRequest.builder().emailAddress(FROM).build(); + client.verifyEmailAddress(verifyEmailAddressRequestFrom); + + try { + this.testCreateTemplateV2(client); + } catch (Exception e) { + throw new Throwable("Error creating template to send"); + } + + String templateData = "{ \"name\":\"Alejandro\", \"favoriteanimal\": \"alligator\" }"; + + software.amazon.awssdk.services.ses.model.SendTemplatedEmailRequest request = software.amazon.awssdk.services.ses.model.SendTemplatedEmailRequest.builder() + .configurationSetName(CONFIGSET) + .source(FROM) + .destination(software.amazon.awssdk.services.ses.model.Destination.builder().toAddresses(TO).build()) + .template(templateName) + .templateData(templateData) + .build(); + + SendTemplatedEmailResponse result = client.sendTemplatedEmail(request); + + // this call is throwing exception + GetSendStatisticsResponse statistics = client.getSendStatistics(); + + Assert.assertNotNull(result); + } + + private void testCreateTemplateV2(SesClient client) { + templateName = "test-s-" + UUID.randomUUID().toString(); + String subjectPart = "Greetings, {{name}}!"; + String htmlPart = "

Hello {{name}},

Your favorite animal is {{favoriteanimal}}.

"; + String textPart = "Dear {{name}},\r\nYour favorite animal is {{favoriteanimal}}."; + + software.amazon.awssdk.services.ses.model.Template template = software.amazon.awssdk.services.ses.model.Template.builder() + .htmlPart(htmlPart) + .textPart(textPart) + .subjectPart(subjectPart) + .templateName(templateName) + .build(); + + software.amazon.awssdk.services.ses.model.CreateTemplateRequest request = software.amazon.awssdk.services.ses.model.CreateTemplateRequest.builder().template(template).build(); + CreateTemplateResponse result = client.createTemplate(request); + + Assert.assertNotNull(result); + } + } From b08c5dce53381bda6494909236d01b22e500724e Mon Sep 17 00:00:00 2001 From: Francisco Date: Thu, 25 Feb 2021 11:04:43 +0100 Subject: [PATCH 2/3] Added tests to show the exception on the SES client V2 --- pom.xml | 6 ++ .../localstack/awssdkv1/SESMessagingTest.java | 66 +++++++++++++++++++ 2 files changed, 72 insertions(+) diff --git a/pom.xml b/pom.xml index e8cb351..77bcdf2 100644 --- a/pom.xml +++ b/pom.xml @@ -134,6 +134,12 @@ 2.14.1 provided
+ + software.amazon.awssdk + ses + ${aws.sdkv2.version} + provided + diff --git a/src/test/java/cloud/localstack/awssdkv1/SESMessagingTest.java b/src/test/java/cloud/localstack/awssdkv1/SESMessagingTest.java index 5d1da2a..aa3de08 100644 --- a/src/test/java/cloud/localstack/awssdkv1/SESMessagingTest.java +++ b/src/test/java/cloud/localstack/awssdkv1/SESMessagingTest.java @@ -3,6 +3,7 @@ import cloud.localstack.LocalstackTestRunner; import cloud.localstack.awssdkv1.TestUtils; +import java.net.URI; import java.util.UUID; import com.amazonaws.services.simpleemail.AmazonSimpleEmailService; @@ -12,6 +13,13 @@ import org.junit.Assert; import org.junit.Test; import org.junit.runner.RunWith; +import software.amazon.awssdk.auth.credentials.AwsBasicCredentials; +import software.amazon.awssdk.auth.credentials.StaticCredentialsProvider; +import software.amazon.awssdk.regions.Region; +import software.amazon.awssdk.services.ses.SesClient; +import software.amazon.awssdk.services.ses.model.CreateTemplateResponse; +import software.amazon.awssdk.services.ses.model.GetSendStatisticsResponse; +import software.amazon.awssdk.services.ses.model.SendTemplatedEmailResponse; /** * Test integration of SES messaging with LocalStack @@ -129,4 +137,62 @@ public void testSendTemplatedEmail() throws Throwable { SendTemplatedEmailResult result = client.sendTemplatedEmail(request); Assert.assertNotNull(result); } + + @Test + public void testSendTemplatedEmailV2() throws Throwable { + SesClient client = SesClient.builder() + .credentialsProvider(StaticCredentialsProvider.create(AwsBasicCredentials.create("access", "secret"))) + .region(Region.of(Localstack.INSTANCE.getDefaultRegion())) + .endpointOverride(new URI(Localstack.INSTANCE.getEndpointSES())) + .build(); + + software.amazon.awssdk.services.ses.model.VerifyEmailAddressRequest verifyEmailAddressRequestTo = software.amazon.awssdk.services.ses.model.VerifyEmailAddressRequest.builder().emailAddress(TO).build(); + client.verifyEmailAddress(verifyEmailAddressRequestTo); + + software.amazon.awssdk.services.ses.model.VerifyEmailAddressRequest verifyEmailAddressRequestFrom = software.amazon.awssdk.services.ses.model.VerifyEmailAddressRequest.builder().emailAddress(FROM).build(); + client.verifyEmailAddress(verifyEmailAddressRequestFrom); + + try { + this.testCreateTemplateV2(client); + } catch (Exception e) { + throw new Throwable("Error creating template to send"); + } + + String templateData = "{ \"name\":\"Alejandro\", \"favoriteanimal\": \"alligator\" }"; + + software.amazon.awssdk.services.ses.model.SendTemplatedEmailRequest request = software.amazon.awssdk.services.ses.model.SendTemplatedEmailRequest.builder() + .configurationSetName(CONFIGSET) + .source(FROM) + .destination(software.amazon.awssdk.services.ses.model.Destination.builder().toAddresses(TO).build()) + .template(templateName) + .templateData(templateData) + .build(); + + SendTemplatedEmailResponse result = client.sendTemplatedEmail(request); + + // this call is throwing exception + GetSendStatisticsResponse statistics = client.getSendStatistics(); + + Assert.assertNotNull(result); + } + + private void testCreateTemplateV2(SesClient client) { + templateName = "test-s-" + UUID.randomUUID().toString(); + String subjectPart = "Greetings, {{name}}!"; + String htmlPart = "

Hello {{name}},

Your favorite animal is {{favoriteanimal}}.

"; + String textPart = "Dear {{name}},\r\nYour favorite animal is {{favoriteanimal}}."; + + software.amazon.awssdk.services.ses.model.Template template = software.amazon.awssdk.services.ses.model.Template.builder() + .htmlPart(htmlPart) + .textPart(textPart) + .subjectPart(subjectPart) + .templateName(templateName) + .build(); + + software.amazon.awssdk.services.ses.model.CreateTemplateRequest request = software.amazon.awssdk.services.ses.model.CreateTemplateRequest.builder().template(template).build(); + CreateTemplateResponse result = client.createTemplate(request); + + Assert.assertNotNull(result); + } + } From 61d583d8e4c52a3fc0bc14ea3e927fad53d2a81d Mon Sep 17 00:00:00 2001 From: Francisco Ripoli Date: Sun, 1 Aug 2021 23:54:13 +0200 Subject: [PATCH 3/3] Added tests to show the exception on the SES client V2 --- pom.xml | 6 ------ 1 file changed, 6 deletions(-) diff --git a/pom.xml b/pom.xml index 96ce81b..77bcdf2 100644 --- a/pom.xml +++ b/pom.xml @@ -140,12 +140,6 @@ ${aws.sdkv2.version} provided
- - software.amazon.awssdk - ses - ${aws.sdkv2.version} - provided -