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