Skip to content

Commit 675f36d

Browse files
authored
added DynamoDB async client utils and unit test (localstack#35)
1 parent 9bbcf9c commit 675f36d

File tree

3 files changed

+39
-0
lines changed

3 files changed

+39
-0
lines changed

pom.xml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -140,6 +140,11 @@
140140
<version>${aws.sdkv2.version}</version>
141141
<scope>provided</scope>
142142
</dependency>
143+
<dependency>
144+
<groupId>software.amazon.awssdk</groupId>
145+
<artifactId>dynamodb</artifactId>
146+
<version>${aws.sdkv2.version}</version>
147+
</dependency>
143148
<dependency>
144149
<groupId>software.amazon.awssdk</groupId>
145150
<artifactId>sns</artifactId>

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

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package cloud.localstack.awssdkv2;
22

33
import software.amazon.awssdk.regions.Region;
4+
import software.amazon.awssdk.services.dynamodb.DynamoDbAsyncClient;
45
import software.amazon.awssdk.utils.*;
56
import software.amazon.awssdk.http.*;
67
import software.amazon.awssdk.services.cloudwatch.*;
@@ -29,6 +30,10 @@ public static KinesisAsyncClient getClientKinesisAsyncV2() {
2930
return wrapApiClientV2(KinesisAsyncClient.builder(), Localstack.INSTANCE.getEndpointKinesis()).build();
3031
}
3132

33+
public static DynamoDbAsyncClient getClientDyanamoAsyncV2() {
34+
return wrapApiClientV2(DynamoDbAsyncClient.builder(), Localstack.INSTANCE.getEndpointDynamoDB()).build();
35+
}
36+
3237
public static SqsAsyncClient getClientSQSAsyncV2() {
3338
return wrapApiClientV2(SqsAsyncClient.builder(), Localstack.INSTANCE.getEndpointSQS()).build();
3439
}

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

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,13 @@
33
import cloud.localstack.Constants;
44
import cloud.localstack.LocalstackTestRunner;
55

6+
import com.amazonaws.services.dynamodbv2.model.ListTablesResult;
7+
import org.assertj.core.api.Assertions;
68
import software.amazon.awssdk.core.SdkSystemSetting;
79
import software.amazon.awssdk.services.cloudwatch.*;
810
import software.amazon.awssdk.services.cloudwatch.model.*;
11+
import software.amazon.awssdk.services.dynamodb.DynamoDbAsyncClient;
12+
import software.amazon.awssdk.services.dynamodb.model.*;
913
import software.amazon.awssdk.services.kinesis.*;
1014
import software.amazon.awssdk.services.kinesis.model.*;
1115
import software.amazon.awssdk.services.s3.*;
@@ -78,6 +82,31 @@ public void testCreateKinesisRecordV2() throws Exception {
7882
Assert.assertNotNull(kinesisClient.putRecord(putRecordRequest.build()));
7983
}
8084

85+
@Test
86+
public void testCreateDynamoDBTable() throws Exception {
87+
DynamoDbAsyncClient dynamoDbAsyncClient = TestUtils.getClientDyanamoAsyncV2();
88+
CreateTableRequest createTableRequest = CreateTableRequest.builder()
89+
.keySchema(
90+
KeySchemaElement.builder()
91+
.keyType(KeyType.HASH)
92+
.attributeName("test")
93+
.build()
94+
)
95+
.attributeDefinitions(AttributeDefinition.builder()
96+
.attributeName("test")
97+
.attributeType(ScalarAttributeType.S)
98+
.build())
99+
.provisionedThroughput(
100+
ProvisionedThroughput.builder()
101+
.readCapacityUnits(5L)
102+
.writeCapacityUnits(5L)
103+
.build())
104+
.tableName("test")
105+
.build();
106+
CreateTableResponse response = dynamoDbAsyncClient.createTable(createTableRequest).get();
107+
Assert.assertNotNull(response);
108+
}
109+
81110
@Test
82111
public void testS3CreateListBuckets() throws Exception {
83112
String bucketName = "test-b-"+UUID.randomUUID().toString();

0 commit comments

Comments
 (0)