Skip to content

Commit 2534df6

Browse files
authored
add tests for SES service (#32)
1 parent 0a7c7b3 commit 2534df6

File tree

2 files changed

+90
-1
lines changed

2 files changed

+90
-1
lines changed

src/main/java/cloud/localstack/awssdkv1/TestUtils.java

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,10 @@
2626
import com.amazonaws.services.logs.AWSLogsClientBuilder;
2727
import com.amazonaws.services.s3.AmazonS3;
2828
import com.amazonaws.services.s3.AmazonS3ClientBuilder;
29+
import com.amazonaws.services.simpleemail.AmazonSimpleEmailService;
30+
import com.amazonaws.services.simpleemail.AmazonSimpleEmailServiceAsync;
31+
import com.amazonaws.services.simpleemail.AmazonSimpleEmailServiceAsyncClientBuilder;
32+
import com.amazonaws.services.simpleemail.AmazonSimpleEmailServiceClientBuilder;
2933
import com.amazonaws.services.sns.AmazonSNS;
3034
import com.amazonaws.services.sns.AmazonSNSAsync;
3135
import com.amazonaws.services.sns.AmazonSNSAsyncClientBuilder;
@@ -69,7 +73,19 @@ public static AmazonSQSAsync getClientSQSAsync(final ExecutorFactory executorFac
6973
withExecutorFactory(executorFactory).
7074
withCredentials(getCredentialsProvider()).build();
7175
}
72-
76+
77+
public static AmazonSimpleEmailService getClientSES() {
78+
return AmazonSimpleEmailServiceClientBuilder.standard().
79+
withEndpointConfiguration(getEndpointConfigurationSNS()).
80+
withCredentials(getCredentialsProvider()).build();
81+
}
82+
83+
public static AmazonSimpleEmailServiceAsync getClientSESAsync() {
84+
return AmazonSimpleEmailServiceAsyncClientBuilder.standard().
85+
withEndpointConfiguration(getEndpointConfigurationSNS()).
86+
withCredentials(getCredentialsProvider()).build();
87+
}
88+
7389
public static AmazonSNS getClientSNS() {
7490
return AmazonSNSClientBuilder.standard().
7591
withEndpointConfiguration(getEndpointConfigurationSNS()).
Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
package cloud.localstack;
2+
3+
import cloud.localstack.awssdkv1.TestUtils;
4+
5+
import com.amazonaws.services.simpleemail.AmazonSimpleEmailService;
6+
import com.amazonaws.services.simpleemail.AmazonSimpleEmailServiceAsync;
7+
import com.amazonaws.services.simpleemail.model.*;
8+
9+
import org.junit.Assert;
10+
import org.junit.Test;
11+
import org.junit.runner.RunWith;
12+
13+
/**
14+
* Test integration of SES messaging with LocalStack
15+
*/
16+
@RunWith(LocalstackTestRunner.class)
17+
public class SESMessagingTest {
18+
19+
static final String FROM = "sender@example.com";
20+
static final String TO = "recipient@example.com";
21+
static final String CONFIGSET = "ConfigSet";
22+
static final String SUBJECT = "Amazon SES test (AWS SDK for Java)";
23+
static final String HTMLBODY = "<h1>Amazon SES test (AWS SDK for Java)</h1>"
24+
+ "<p>This email was sent with <a href='https://aws.amazon.com/ses/'>"
25+
+ "Amazon SES</a> using the <a href='https://aws.amazon.com/sdk-for-java/'>" + "AWS SDK for Java</a>";
26+
static final String TEXTBODY = "This email was sent through Amazon SES " + "using the AWS SDK for Java.";
27+
28+
29+
30+
@Test
31+
public void testSendEmail() throws Exception {
32+
AmazonSimpleEmailService client = TestUtils.getClientSES();
33+
34+
VerifyEmailAddressRequest verifyEmailAddressRequest = new VerifyEmailAddressRequest().withEmailAddress(TO);
35+
client.verifyEmailAddress(verifyEmailAddressRequest);
36+
37+
verifyEmailAddressRequest.setEmailAddress(FROM);
38+
client.verifyEmailAddress(verifyEmailAddressRequest);
39+
40+
SendEmailRequest request = new SendEmailRequest()
41+
.withDestination(new Destination().withToAddresses(TO))
42+
.withMessage(new Message()
43+
.withBody(new Body().withHtml(new Content().withCharset("UTF-8").withData(HTMLBODY))
44+
.withText(new Content().withCharset("UTF-8").withData(TEXTBODY)))
45+
.withSubject(new Content().withCharset("UTF-8").withData(SUBJECT)))
46+
.withSource(FROM).withConfigurationSetName(CONFIGSET);
47+
48+
SendEmailResult result = client.sendEmail(request);
49+
Assert.assertNotNull(result);
50+
}
51+
52+
@Test
53+
public void testSendAsyncEmail() throws Exception {
54+
AmazonSimpleEmailServiceAsync client = TestUtils.getClientSESAsync();
55+
56+
VerifyEmailAddressRequest verifyEmailAddressRequest = new VerifyEmailAddressRequest().withEmailAddress(TO);
57+
client.verifyEmailAddress(verifyEmailAddressRequest);
58+
59+
verifyEmailAddressRequest.setEmailAddress(FROM);
60+
client.verifyEmailAddress(verifyEmailAddressRequest);
61+
62+
SendEmailRequest request = new SendEmailRequest()
63+
.withDestination(new Destination().withToAddresses(TO))
64+
.withMessage(new Message()
65+
.withBody(new Body().withHtml(new Content().withCharset("UTF-8").withData(HTMLBODY))
66+
.withText(new Content().withCharset("UTF-8").withData(TEXTBODY)))
67+
.withSubject(new Content().withCharset("UTF-8").withData(SUBJECT)))
68+
.withSource(FROM).withConfigurationSetName(CONFIGSET);
69+
70+
SendEmailResult result = client.sendEmail(request);
71+
Assert.assertNotNull(result);
72+
}
73+
}

0 commit comments

Comments
 (0)