diff --git a/pom.xml b/pom.xml index 05ac3b1..8cf7b01 100644 --- a/pom.xml +++ b/pom.xml @@ -140,6 +140,11 @@ ${aws.sdkv2.version} provided + + software.amazon.awssdk + dynamodb + ${aws.sdkv2.version} + software.amazon.awssdk sns diff --git a/src/main/java/cloud/localstack/awssdkv2/TestUtils.java b/src/main/java/cloud/localstack/awssdkv2/TestUtils.java index 1f97fad..97bdf91 100644 --- a/src/main/java/cloud/localstack/awssdkv2/TestUtils.java +++ b/src/main/java/cloud/localstack/awssdkv2/TestUtils.java @@ -1,6 +1,7 @@ package cloud.localstack.awssdkv2; import software.amazon.awssdk.regions.Region; +import software.amazon.awssdk.services.dynamodb.DynamoDbAsyncClient; import software.amazon.awssdk.utils.*; import software.amazon.awssdk.http.*; import software.amazon.awssdk.services.cloudwatch.*; @@ -29,6 +30,10 @@ public static KinesisAsyncClient getClientKinesisAsyncV2() { return wrapApiClientV2(KinesisAsyncClient.builder(), Localstack.INSTANCE.getEndpointKinesis()).build(); } + public static DynamoDbAsyncClient getClientDyanamoAsyncV2() { + return wrapApiClientV2(DynamoDbAsyncClient.builder(), Localstack.INSTANCE.getEndpointDynamoDB()).build(); + } + public static SqsAsyncClient getClientSQSAsyncV2() { return wrapApiClientV2(SqsAsyncClient.builder(), Localstack.INSTANCE.getEndpointSQS()).build(); } diff --git a/src/test/java/cloud/localstack/awssdkv2/BasicFeaturesSDKV2Test.java b/src/test/java/cloud/localstack/awssdkv2/BasicFeaturesSDKV2Test.java index 65d31ad..a29cd94 100644 --- a/src/test/java/cloud/localstack/awssdkv2/BasicFeaturesSDKV2Test.java +++ b/src/test/java/cloud/localstack/awssdkv2/BasicFeaturesSDKV2Test.java @@ -3,9 +3,13 @@ import cloud.localstack.Constants; import cloud.localstack.LocalstackTestRunner; +import com.amazonaws.services.dynamodbv2.model.ListTablesResult; +import org.assertj.core.api.Assertions; import software.amazon.awssdk.core.SdkSystemSetting; import software.amazon.awssdk.services.cloudwatch.*; import software.amazon.awssdk.services.cloudwatch.model.*; +import software.amazon.awssdk.services.dynamodb.DynamoDbAsyncClient; +import software.amazon.awssdk.services.dynamodb.model.*; import software.amazon.awssdk.services.kinesis.*; import software.amazon.awssdk.services.kinesis.model.*; import software.amazon.awssdk.services.s3.*; @@ -78,6 +82,31 @@ public void testCreateKinesisRecordV2() throws Exception { Assert.assertNotNull(kinesisClient.putRecord(putRecordRequest.build())); } + @Test + public void testCreateDynamoDBTable() throws Exception { + DynamoDbAsyncClient dynamoDbAsyncClient = TestUtils.getClientDyanamoAsyncV2(); + CreateTableRequest createTableRequest = CreateTableRequest.builder() + .keySchema( + KeySchemaElement.builder() + .keyType(KeyType.HASH) + .attributeName("test") + .build() + ) + .attributeDefinitions(AttributeDefinition.builder() + .attributeName("test") + .attributeType(ScalarAttributeType.S) + .build()) + .provisionedThroughput( + ProvisionedThroughput.builder() + .readCapacityUnits(5L) + .writeCapacityUnits(5L) + .build()) + .tableName("test") + .build(); + CreateTableResponse response = dynamoDbAsyncClient.createTable(createTableRequest).get(); + Assert.assertNotNull(response); + } + @Test public void testS3CreateListBuckets() throws Exception { String bucketName = "test-b-"+UUID.randomUUID().toString();