Skip to content

Commit 2fe795f

Browse files
authored
add tests for SSM & SecretsManager integration (#27)
1 parent 6dffbf9 commit 2fe795f

18 files changed

+44
-46
lines changed

pom.xml

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -146,12 +146,18 @@
146146
<version>${aws.sdkv2.version}</version>
147147
<scope>provided</scope>
148148
</dependency>
149-
<dependency>
149+
<dependency>
150150
<groupId>software.amazon.awssdk</groupId>
151151
<artifactId>ssm</artifactId>
152152
<version>${aws.sdkv2.version}</version>
153153
<scope>provided</scope>
154154
</dependency>
155+
<dependency>
156+
<groupId>software.amazon.awssdk</groupId>
157+
<artifactId>secretsmanager</artifactId>
158+
<version>${aws.sdkv2.version}</version>
159+
<scope>provided</scope>
160+
</dependency>
155161
<dependency>
156162
<groupId>software.amazon.awssdk</groupId>
157163
<artifactId>kinesis</artifactId>

src/main/java/cloud/localstack/CommonUtils.java

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

3-
import cloud.localstack.Constants;
4-
import cloud.localstack.Localstack;
5-
63
import java.io.*;
74
import java.nio.file.*;
85
import java.util.*;

src/main/java/cloud/localstack/Localstack.java

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

3-
import cloud.localstack.Constants;
4-
import cloud.localstack.ServiceName;
5-
import cloud.localstack.CommonUtils;
63
import cloud.localstack.docker.*;
74
import cloud.localstack.docker.command.*;
85
import cloud.localstack.docker.annotation.LocalstackDockerConfiguration;
96
import cloud.localstack.docker.exception.LocalstackDockerException;
10-
import lombok.Getter;
11-
import lombok.Setter;
127

138
import java.util.*;
149
import java.util.logging.Logger;

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

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
import software.amazon.awssdk.services.sns.*;
88
import software.amazon.awssdk.services.sqs.*;
99
import software.amazon.awssdk.services.s3.*;
10+
import software.amazon.awssdk.services.secretsmanager.SecretsManagerAsyncClient;
1011
import software.amazon.awssdk.services.ssm.*;
1112
import software.amazon.awssdk.auth.credentials.*;
1213
import software.amazon.awssdk.http.nio.netty.NettyNioAsyncHttpClient;
@@ -39,6 +40,10 @@ public static SsmAsyncClient getClientSSMAsyncV2() {
3940
return wrapApiClientV2(SsmAsyncClient.builder(), Localstack.INSTANCE.getEndpointSSM()).build();
4041
}
4142

43+
public static SecretsManagerAsyncClient getClientSecretsManagerAsyncV2() {
44+
return wrapApiClientV2(SecretsManagerAsyncClient.builder(), Localstack.INSTANCE.getEndpointSSM()).build();
45+
}
46+
4247
public static S3AsyncClient getClientS3AsyncV2() {
4348
return wrapApiClientV2(S3AsyncClient.builder(), Localstack.INSTANCE.getEndpointS3()).build();
4449
}

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

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77
import java.net.InetSocketAddress;
88
import java.net.Socket;
99
import java.util.Collections;
10-
import java.util.HashMap;
1110
import java.util.List;
1211
import java.util.Map;
1312
import java.util.logging.Logger;

src/main/java/cloud/localstack/lambda/S3EventParser.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22
import static cloud.localstack.LambdaExecutor.get;
33
import com.amazonaws.services.lambda.runtime.events.S3Event;
44
import com.amazonaws.services.s3.event.S3EventNotification;
5-
import org.joda.time.DateTime;
65

76
import java.util.*;
87

src/test/java/cloud/localstack/CWMetricsTest.java

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,7 @@
33
import cloud.localstack.docker.annotation.LocalstackDockerProperties;
44
import cloud.localstack.awssdkv1.TestUtils;
55

6-
import com.amazonaws.auth.AWSStaticCredentialsProvider;
7-
import com.amazonaws.auth.BasicAWSCredentials;
8-
import com.amazonaws.client.builder.AwsClientBuilder;
96
import com.amazonaws.services.cloudwatch.AmazonCloudWatch;
10-
import com.amazonaws.services.cloudwatch.AmazonCloudWatchClientBuilder;
117
import com.amazonaws.services.cloudwatch.model.*;
128
import org.junit.Assert;
139
import org.junit.Test;

src/test/java/cloud/localstack/S3FeaturesTest.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,7 @@
1717
import org.junit.runner.RunWith;
1818

1919
import org.apache.commons.io.IOUtils;
20-
import org.apache.http.*;
2120
import org.apache.http.conn.ssl.*;
22-
import org.apache.http.client.*;
2321
import org.apache.http.client.methods.*;
2422
import org.apache.http.entity.*;
2523
import org.apache.http.impl.client.*;

src/test/java/cloud/localstack/SQSMessagingTest.java

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

3-
import cloud.localstack.CommonUtils;
43
import cloud.localstack.utils.PromiseAsyncHandler;
54
import cloud.localstack.docker.annotation.LocalstackDockerProperties;
65
import cloud.localstack.awssdkv1.TestUtils;

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

Lines changed: 29 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,29 @@
11
package cloud.localstack.awssdkv2;
22

33
import cloud.localstack.Constants;
4-
import cloud.localstack.awssdkv2.TestUtils;
54
import cloud.localstack.LocalstackTestRunner;
65

76
import software.amazon.awssdk.core.SdkSystemSetting;
87
import software.amazon.awssdk.services.kinesis.*;
98
import software.amazon.awssdk.services.kinesis.model.*;
109
import software.amazon.awssdk.services.s3.*;
1110
import software.amazon.awssdk.services.s3.model.*;
11+
import software.amazon.awssdk.services.secretsmanager.SecretsManagerAsyncClient;
12+
import software.amazon.awssdk.services.secretsmanager.model.CreateSecretRequest;
13+
import software.amazon.awssdk.services.secretsmanager.model.GetSecretValueRequest;
14+
import software.amazon.awssdk.services.secretsmanager.model.GetSecretValueResponse;
1215
import software.amazon.awssdk.services.sns.*;
1316
import software.amazon.awssdk.services.sns.model.*;
1417
import software.amazon.awssdk.services.sqs.*;
1518
import software.amazon.awssdk.services.sqs.model.*;
1619
import software.amazon.awssdk.services.ssm.*;
1720
import software.amazon.awssdk.services.ssm.model.*;
18-
import software.amazon.awssdk.auth.credentials.*;
19-
import software.amazon.awssdk.regions.Region;
20-
import software.amazon.awssdk.utils.Logger;
2121

2222
import org.junit.Assert;
2323
import org.junit.Test;
2424
import org.junit.runner.RunWith;
2525

2626
import java.util.*;
27-
import java.net.*;
2827
import java.nio.ByteBuffer;
2928
import software.amazon.awssdk.core.SdkBytes;
3029
import java.util.concurrent.CompletableFuture;
@@ -106,12 +105,34 @@ public void testSendSNSMessage() throws Exception {
106105
public void testGetSsmParameter() throws Exception {
107106
// Test integration of ssm parameter with LocalStack using SDK v2
108107

109-
final String topicName = "test-t-"+UUID.randomUUID().toString();
110108
final SsmAsyncClient clientSsm = TestUtils.getClientSSMAsyncV2();
111-
CompletableFuture<PutParameterResponse> putParameterReponse = clientSsm.putParameter(PutParameterRequest.builder().name("testparameter").value("testvalue").build());
112-
CompletableFuture<GetParameterResponse> getParameterResponse = clientSsm.getParameter(GetParameterRequest.builder().name("testparameter").build());
109+
clientSsm.putParameter(PutParameterRequest.builder().name("testparameter").value("testvalue").build());
110+
CompletableFuture<GetParameterResponse> getParameterResponse = clientSsm.getParameter(GetParameterRequest.builder().name("testparameter").build());
113111
String parameterValue = getParameterResponse.get().parameter().value();
114112
Assert.assertNotNull(parameterValue);
115113
Assert.assertEquals("testvalue", parameterValue);
116114
}
115+
116+
@Test
117+
public void testGetSecretsManagerSecret() throws Exception {
118+
final SecretsManagerAsyncClient clientSecretsManager = TestUtils.getClientSecretsManagerAsyncV2();
119+
clientSecretsManager.createSecret(CreateSecretRequest.builder().name("testsecret").secretString("secretcontent").build());
120+
CompletableFuture<GetSecretValueResponse> getSecretResponse = clientSecretsManager.getSecretValue(GetSecretValueRequest.builder().secretId("testsecret").build());
121+
String secretValue = getSecretResponse.get().secretString();
122+
123+
Assert.assertNotNull(secretValue);
124+
Assert.assertEquals("secretcontent", secretValue);
125+
}
126+
127+
@Test
128+
public void testGetSecretAsParam() throws Exception {
129+
final SsmAsyncClient clientSsm = TestUtils.getClientSSMAsyncV2();
130+
final SecretsManagerAsyncClient clientSecretsManager = TestUtils.getClientSecretsManagerAsyncV2();
131+
clientSecretsManager.createSecret(CreateSecretRequest.builder().name("testsecret").secretString("secretcontent").build());
132+
CompletableFuture<GetParameterResponse> getParameterResponse = clientSsm.getParameter(GetParameterRequest.builder().name("/aws/reference/secretsmanager/testsecret").build());
133+
String parameterValue = getParameterResponse.get().parameter().value();
134+
135+
Assert.assertNotNull(parameterValue);
136+
Assert.assertEquals("secretcontent", parameterValue);
137+
}
117138
}

0 commit comments

Comments
 (0)