Skip to content

Commit 9d4b8f3

Browse files
committed
add tests for S3 list buckets creation date
1 parent b03e484 commit 9d4b8f3

File tree

6 files changed

+57
-46
lines changed

6 files changed

+57
-46
lines changed

.travis.yml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,12 +10,14 @@ branches:
1010

1111
install:
1212
- set -e
13-
- nohup docker pull localstack/localstack > /dev/null &
13+
- nohup docker pull localstack/localstack-light > /dev/null &
1414
- nohup docker pull lambci/lambda:java8 > /dev/null &
1515

1616
script:
1717
- set -e
1818
- mvn -q -DskipTests test
19+
- docker pull localstack/localstack-light > /dev/null
20+
- docker tag localstack/localstack-light localstack/localstack
1921
- make test
2022
- docker ps -a
2123

pom.xml

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@
3232
<maven.compiler.source>1.8</maven.compiler.source>
3333
<maven.compiler.target>1.8</maven.compiler.target>
3434
<aws.sdk.version>1.11.642</aws.sdk.version>
35-
<aws.sdkv2.version>2.13.36</aws.sdkv2.version>
35+
<aws.sdkv2.version>2.13.39</aws.sdkv2.version>
3636
</properties>
3737

3838
<dependencies>
@@ -151,6 +151,12 @@
151151
<version>${aws.sdkv2.version}</version>
152152
<scope>provided</scope>
153153
</dependency>
154+
<dependency>
155+
<groupId>software.amazon.awssdk</groupId>
156+
<artifactId>s3</artifactId>
157+
<version>${aws.sdkv2.version}</version>
158+
<scope>provided</scope>
159+
</dependency>
154160
<dependency>
155161
<groupId>software.amazon.awssdk</groupId>
156162
<artifactId>netty-nio-client</artifactId>

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

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,10 @@
66
import software.amazon.awssdk.services.kinesis.*;
77
import software.amazon.awssdk.services.sns.*;
88
import software.amazon.awssdk.services.sqs.*;
9+
import software.amazon.awssdk.services.s3.*;
10+
import software.amazon.awssdk.auth.credentials.*;
911
import software.amazon.awssdk.http.nio.netty.NettyNioAsyncHttpClient;
1012
import software.amazon.awssdk.core.client.builder.SdkAsyncClientBuilder;
11-
import software.amazon.awssdk.auth.credentials.AwsCredentialsProvider;
12-
import software.amazon.awssdk.auth.credentials.StaticCredentialsProvider;
13-
import software.amazon.awssdk.auth.credentials.AwsBasicCredentials;
1413
import software.amazon.awssdk.awscore.client.builder.AwsClientBuilder;
1514

1615
import cloud.localstack.Localstack;
@@ -35,6 +34,10 @@ public static SnsAsyncClient getClientSNSAsyncV2() {
3534
return wrapApiClientV2(SnsAsyncClient.builder(), Localstack.INSTANCE.getEndpointSNS()).build();
3635
}
3736

37+
public static S3AsyncClient getClientS3AsyncV2() {
38+
return wrapApiClientV2(S3AsyncClient.builder(), Localstack.INSTANCE.getEndpointS3()).build();
39+
}
40+
3841
public static <T extends SdkAsyncClientBuilder> T wrapApiClientV2(T builder, String endpointURL) {
3942
try {
4043
return (T) ((AwsClientBuilder)builder

src/main/java/cloud/localstack/docker/LocalstackDockerExtension.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,10 @@ public void beforeAll(final ExtensionContext context) throws Exception {
3737
} else {
3838
store = context.getStore(NAMESPACE);
3939
}
40-
store.getOrComputeIfAbsent("localstack", key -> new LocalstackDockerExtension.StartedLocalStack(context));
40+
if (store.get("localstack") == null) {
41+
final StartedLocalStack startedStack = new LocalstackDockerExtension.StartedLocalStack(context);
42+
store.getOrComputeIfAbsent("localstack", key -> startedStack);
43+
}
4144
}
4245

4346
private boolean isUseSingleDockerContainer(final ExtensionContext context) {

src/test/java/cloud/localstack/awssdkv2/BasicFeaturesSDKV2Test.java

Lines changed: 37 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,14 @@
44
import cloud.localstack.LocalstackTestRunner;
55

66
import software.amazon.awssdk.core.SdkSystemSetting;
7-
import software.amazon.awssdk.services.sqs.*;
8-
import software.amazon.awssdk.services.sqs.model.*;
97
import software.amazon.awssdk.services.kinesis.*;
108
import software.amazon.awssdk.services.kinesis.model.*;
9+
import software.amazon.awssdk.services.s3.*;
10+
import software.amazon.awssdk.services.s3.model.*;
11+
import software.amazon.awssdk.services.sns.*;
12+
import software.amazon.awssdk.services.sns.model.*;
13+
import software.amazon.awssdk.services.sqs.*;
14+
import software.amazon.awssdk.services.sqs.model.*;
1115
import software.amazon.awssdk.auth.credentials.*;
1216
import software.amazon.awssdk.regions.Region;
1317
import software.amazon.awssdk.utils.Logger;
@@ -32,8 +36,7 @@ public void testCreateSqsQueueV2() throws Exception {
3236
CreateQueueRequest request = CreateQueueRequest.builder().queueName(queueName).build();
3337
SqsAsyncClient sqsClient = TestUtils.getClientSQSAsyncV2();
3438
CreateQueueResponse queue = sqsClient.createQueue(request).get();
35-
// TODO fix classpath for v2 and finalize test
36-
System.out.println(queue);
39+
Assert.assertTrue(queue.queueUrl().contains("queue/" + queueName));
3740
}
3841

3942
@Test
@@ -43,8 +46,36 @@ public void testCreateKinesisStreamV2() throws Exception {
4346
CreateStreamRequest request = CreateStreamRequest.builder()
4447
.streamName(streamName).shardCount(1).build();
4548
CreateStreamResponse response = kinesisClient.createStream(request).get();
46-
// TODO fix classpath for v2 and finalize test
47-
System.out.println(response);
49+
Assert.assertNotNull(response);
50+
}
51+
52+
@Test
53+
public void testS3CreateListBuckets() throws Exception {
54+
String bucketName = "test-b-9716";
55+
S3AsyncClient s3Client = TestUtils.getClientS3AsyncV2();
56+
CreateBucketRequest request = CreateBucketRequest.builder().bucket(bucketName).build();
57+
CreateBucketResponse response = s3Client.createBucket(request).get();
58+
Assert.assertNotNull(response);
59+
ListBucketsRequest listRequest = ListBucketsRequest.builder().build();
60+
ListBucketsResponse buckets = s3Client.listBuckets(listRequest).get();
61+
Bucket bucket = buckets.buckets().stream().filter(b -> b.name().equals(bucketName)).findFirst().get();
62+
Assert.assertNotNull(bucket);
4863
}
4964

65+
@Test
66+
public void testSendSNSMessage() throws Exception {
67+
// Test integration of SNS messaging with LocalStack using SDK v2
68+
69+
final String topicName = "test-t-6210";
70+
final SnsAsyncClient clientSNS = TestUtils.getClientSNSAsyncV2();
71+
CreateTopicResponse createTopicResponse = clientSNS.createTopic(
72+
CreateTopicRequest.builder().name(topicName).build()).get();
73+
74+
String topicArn = createTopicResponse.topicArn();
75+
Assert.assertNotNull(topicArn);
76+
PublishRequest publishRequest = PublishRequest.builder().topicArn(topicArn).subject("test subject").message("message test.").build();
77+
78+
PublishResponse publishResponse = clientSNS.publish(publishRequest).get();
79+
Assert.assertNotNull(publishResponse.messageId());
80+
}
5081
}

src/test/java/cloud/localstack/awssdkv2/SNSMessagingTest.java

Lines changed: 0 additions & 34 deletions
This file was deleted.

0 commit comments

Comments
 (0)