Skip to content

Commit bf7c570

Browse files
committed
Simplify powertools-parameters-tests GraalVM config and fix issues in unit tests.
1 parent d314b1a commit bf7c570

File tree

3 files changed

+31
-40
lines changed

3 files changed

+31
-40
lines changed

powertools-parameters/powertools-parameters-tests/pom.xml

Lines changed: 18 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<?xml version="1.0" encoding="UTF-8"?>
22
<project xmlns="http://maven.apache.org/POM/4.0.0"
3-
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4-
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
3+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4+
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
55
<modelVersion>4.0.0</modelVersion>
66
<parent>
77
<groupId>software.amazon.lambda</groupId>
@@ -50,6 +50,11 @@
5050
<artifactId>mockito-core</artifactId>
5151
<scope>test</scope>
5252
</dependency>
53+
<dependency>
54+
<groupId>org.mockito</groupId>
55+
<artifactId>mockito-junit-jupiter</artifactId>
56+
<scope>test</scope>
57+
</dependency>
5358
<dependency>
5459
<groupId>org.slf4j</groupId>
5560
<artifactId>slf4j-simple</artifactId>
@@ -107,7 +112,9 @@
107112
<artifactId>maven-surefire-plugin</artifactId>
108113
<version>3.5.3</version>
109114
<configuration>
110-
<argLine>-Dmockito.mock.maker=subclass -Dorg.graalvm.nativeimage.imagecode=agent -agentlib:native-image-agent=config-output-dir=src/main/resources/META-INF/native-image/software.amazon.lambda/powertools-parameters,experimental-class-define-support
115+
<argLine>
116+
-Dorg.graalvm.nativeimage.imagecode=agent
117+
-agentlib:native-image-agent=config-output-dir=src/main/resources/META-INF/native-image/software.amazon.lambda/powertools-parameters,experimental-class-define-support
111118
--add-opens java.base/java.util=ALL-UNNAMED
112119
--add-opens java.base/java.lang=ALL-UNNAMED
113120
</argLine>
@@ -124,6 +131,13 @@
124131
<artifactId>mockito-subclass</artifactId>
125132
<scope>test</scope>
126133
</dependency>
134+
135+
<!-- Required explicitly for @Captor ArgumentCaptor -->
136+
<dependency>
137+
<groupId>org.junit.jupiter</groupId>
138+
<artifactId>junit-jupiter-params</artifactId>
139+
<scope>test</scope>
140+
</dependency>
127141
</dependencies>
128142
<build>
129143
<plugins>
@@ -147,33 +161,11 @@
147161
<buildArg>--add-opens java.base/java.util=ALL-UNNAMED</buildArg>
148162
<buildArg>--add-opens java.base/java.lang=ALL-UNNAMED</buildArg>
149163
<buildArg>--no-fallback</buildArg>
150-
<buildArg>-Dorg.graalvm.nativeimage.imagecode=agent</buildArg>
151-
<buildArg>-H:ClassInitialization=net.bytebuddy.ClassFileVersion:rerun</buildArg>
152-
<buildArg>-H:ClassInitialization=net.bytebuddy.utility.dispatcher.JavaDispatcher:rerun</buildArg>
153-
<buildArg>-H:ClassInitialization=net.bytebuddy.utility.Invoker$Dispatcher:rerun</buildArg>
154-
<buildArg>-H:ClassInitialization=net.bytebuddy.utility.GraalImageCode:rerun</buildArg>
155-
<buildArg>--initialize-at-build-time=org.slf4j.simple.SimpleLogger</buildArg>
156-
<buildArg>--initialize-at-build-time=org.slf4j.LoggerFactory</buildArg>
157-
<buildArg>--initialize-at-build-time=org.junit.Ignore</buildArg>
158-
<buildArg>--initialize-at-build-time=java.lang.annotation.Annotation</buildArg>
159-
<buildArg>--initialize-at-build-time=org.junit.runners.model.FrameworkField</buildArg>
160-
<buildArg>--initialize-at-build-time=net.bytebuddy.description.type.TypeDescription$AbstractBase</buildArg>
161-
<buildArg>--initialize-at-build-time=net.bytebuddy.implementation.bind.annotation.Argument$BindingMechanic</buildArg>
162-
<buildArg>--initialize-at-build-time=net.bytebuddy.implementation.bind.annotation.Argument$BindingMechanic$1</buildArg>
163-
<buildArg>--initialize-at-build-time=net.bytebuddy.implementation.bind.annotation.Argument$BindingMechanic$2</buildArg>
164-
<buildArg>--initialize-at-build-time=net.bytebuddy.utility.dispatcher.JavaDispatcher$DynamicClassLoader</buildArg>
165-
<buildArg>--initialize-at-build-time=net.bytebuddy.description.method.MethodDescription$InDefinedShape$AbstractBase$ForLoadedExecutable</buildArg>
166-
<buildArg>--initialize-at-build-time=net.bytebuddy.description.type.TypeDescription$AbstractBase</buildArg>
167-
<buildArg>--initialize-at-build-time=net.bytebuddy.description.type.TypeDescription$ForLoadedType</buildArg>
168-
<buildArg>--initialize-at-build-time=net.bytebuddy.description.method.MethodDescription$ForLoadedMethod</buildArg>
169-
<buildArg>--initialize-at-build-time=net.bytebuddy.implementation.bind.annotation.Super$Instantiation$2</buildArg>
170-
<buildArg>
171-
--trace-class-initialization=net.bytebuddy.description.type.TypeDescription$ForLoadedType,net.bytebuddy.description.method.MethodDescription$ForLoadedMethod,net.bytebuddy.description.method.MethodDescription$InDefinedShape$AbstractBase$ForLoadedExecutable
172-
</buildArg>
173164
<buildArg>--verbose</buildArg>
174165
<buildArg>--native-image-info</buildArg>
175166
<buildArg>-H:+UnlockExperimentalVMOptions</buildArg>
176167
<buildArg>-H:Log=registerResource:5</buildArg>
168+
<buildArg>-H:+ReportExceptionStackTraces</buildArg>
177169
</buildArgs>
178170
</configuration>
179171
</plugin>

powertools-parameters/powertools-parameters-tests/src/test/java/software/amazon/lambda/powertools/parameters/BaseProviderTest.java

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@
2020
import static java.time.temporal.ChronoUnit.SECONDS;
2121
import static org.assertj.core.api.Assertions.assertThat;
2222
import static org.assertj.core.api.Assertions.assertThatIllegalStateException;
23-
import static org.mockito.MockitoAnnotations.openMocks;
2423
import static software.amazon.lambda.powertools.parameters.transform.Transformer.base64;
2524
import static software.amazon.lambda.powertools.parameters.transform.Transformer.json;
2625

@@ -30,8 +29,10 @@
3029
import java.util.Base64;
3130
import java.util.HashMap;
3231
import java.util.Map;
32+
3333
import org.junit.jupiter.api.BeforeEach;
3434
import org.junit.jupiter.api.Test;
35+
3536
import software.amazon.lambda.powertools.parameters.cache.CacheManager;
3637
import software.amazon.lambda.powertools.parameters.transform.ObjectToDeserialize;
3738
import software.amazon.lambda.powertools.parameters.transform.TransformationManager;
@@ -43,13 +44,10 @@ public class BaseProviderTest {
4344
CacheManager cacheManager;
4445
TransformationManager transformationManager;
4546
BasicProvider provider;
46-
4747
boolean getFromStore = false;
4848

4949
@BeforeEach
5050
public void setup() {
51-
openMocks(this);
52-
5351
clock = Clock.systemDefaultZone();
5452
cacheManager = new CacheManager();
5553
transformationManager = new TransformationManager();
@@ -197,8 +195,8 @@ public void get_basicTransformation_shouldTransformInString() {
197195
public void get_complexTransformation_shouldTransformInObject() {
198196
provider.setValue("{\"foo\":\"Foo\", \"bar\":42, \"baz\":123456789}");
199197

200-
ObjectToDeserialize objectToDeserialize =
201-
provider.withTransformation(json).get("foo", ObjectToDeserialize.class);
198+
ObjectToDeserialize objectToDeserialize = provider.withTransformation(json).get("foo",
199+
ObjectToDeserialize.class);
202200

203201
assertThat(objectToDeserialize).matches(
204202
o -> o.getFoo().equals("Foo")

powertools-parameters/powertools-parameters-tests/src/test/java/software/amazon/lambda/powertools/parameters/ParamProvidersIntegrationTest.java

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -19,17 +19,19 @@
1919
import static org.mockito.Mockito.times;
2020
import static org.mockito.Mockito.verify;
2121
import static org.mockito.Mockito.when;
22-
import static org.mockito.MockitoAnnotations.openMocks;
2322

2423
import java.util.ArrayList;
2524
import java.util.List;
2625
import java.util.Map;
26+
2727
import org.assertj.core.data.MapEntry;
28-
import org.junit.jupiter.api.BeforeEach;
2928
import org.junit.jupiter.api.Test;
29+
import org.junit.jupiter.api.extension.ExtendWith;
3030
import org.mockito.ArgumentCaptor;
3131
import org.mockito.Captor;
3232
import org.mockito.Mock;
33+
import org.mockito.junit.jupiter.MockitoExtension;
34+
3335
import software.amazon.awssdk.services.dynamodb.DynamoDbClient;
3436
import software.amazon.awssdk.services.secretsmanager.SecretsManagerClient;
3537
import software.amazon.awssdk.services.secretsmanager.model.GetSecretValueRequest;
@@ -43,27 +45,26 @@
4345
import software.amazon.lambda.powertools.parameters.secrets.SecretsProvider;
4446
import software.amazon.lambda.powertools.parameters.ssm.SSMProvider;
4547

48+
@ExtendWith(MockitoExtension.class)
4649
public class ParamProvidersIntegrationTest {
47-
4850
@Mock
4951
SsmClient ssmClient;
5052

5153
@Mock
5254
DynamoDbClient ddbClient;
55+
5356
@Captor
5457
ArgumentCaptor<GetParameterRequest> ssmParamCaptor;
58+
5559
@Captor
5660
ArgumentCaptor<GetParametersByPathRequest> ssmParamByPathCaptor;
61+
5762
@Mock
5863
SecretsManagerClient secretsManagerClient;
64+
5965
@Captor
6066
ArgumentCaptor<GetSecretValueRequest> secretsCaptor;
6167

62-
@BeforeEach
63-
public void setup() throws IllegalAccessException {
64-
openMocks(this);
65-
}
66-
6768
@Test
6869
public void ssmProvider_get() {
6970
SSMProvider ssmProvider = SSMProvider.builder()

0 commit comments

Comments
 (0)