Skip to content

Commit 1a699a1

Browse files
committed
add further testing for v2 requests
1 parent 87bda8f commit 1a699a1

File tree

2 files changed

+75
-4
lines changed

2 files changed

+75
-4
lines changed

aws-serverless-java-container-springboot3/src/test/java/com/amazonaws/serverless/proxy/spring/AwsSpringHttpProcessingUtilsTests.java

Lines changed: 30 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -223,6 +223,10 @@ public static Collection<String> v1Data() {
223223
return Arrays.asList(new String[]{API_GATEWAY_EVENT, ALB_EVENT});
224224
}
225225

226+
public static Collection<String> v2Data() {
227+
return Arrays.asList(new String[]{API_GATEWAY_EVENT_V2});
228+
}
229+
226230
@MethodSource("data")
227231
@ParameterizedTest
228232
public void validateHttpServletRequestGenerationWithInputStream(String jsonEvent) {
@@ -282,7 +286,7 @@ public void validateLambdaContextAttribute(String jsonEvent) {
282286
assertNotNull(request.getAttribute(RequestReader.API_GATEWAY_EVENT_PROPERTY));
283287
}
284288

285-
@MethodSource("v1Data")
289+
@MethodSource("data")
286290
@ParameterizedTest
287291
public void validateSecurityContextAttribute(String jsonEvent) {
288292
ServerlessServletContext servletContext = new ServerlessServletContext();
@@ -301,7 +305,7 @@ public void validateNullMultiValueHeaders(String jsonEvent) throws Exception {
301305
assertNotNull(request);
302306
}
303307

304-
@MethodSource("v1Data")
308+
@MethodSource("data")
305309
@ParameterizedTest
306310
public void validateBase64EncodedBody(String jsonEvent) throws Exception {
307311
String base64Body = java.util.Base64.getEncoder().encodeToString("test body".getBytes(StandardCharsets.UTF_8));
@@ -313,6 +317,30 @@ public void validateBase64EncodedBody(String jsonEvent) throws Exception {
313317
HttpServletRequest request = AwsSpringHttpProcessingUtils.generateHttpServletRequest(modifiedEvent, null, servletContext, mapper);
314318
assertNotNull(request);
315319
}
320+
321+
@MethodSource("v2Data")
322+
@ParameterizedTest
323+
public void validateHttpApiContextAttribute(String jsonEvent) {
324+
ServerlessServletContext servletContext = new ServerlessServletContext();
325+
HttpServletRequest request = AwsSpringHttpProcessingUtils.generateHttpServletRequest(jsonEvent, null, servletContext, mapper);
326+
assertNotNull(request.getAttribute(RequestReader.HTTP_API_CONTEXT_PROPERTY));
327+
}
328+
329+
@MethodSource("v2Data")
330+
@ParameterizedTest
331+
public void validateHttpApiStageVarsAttribute(String jsonEvent) {
332+
ServerlessServletContext servletContext = new ServerlessServletContext();
333+
HttpServletRequest request = AwsSpringHttpProcessingUtils.generateHttpServletRequest(jsonEvent, null, servletContext, mapper);
334+
assertNotNull(request.getAttribute(RequestReader.HTTP_API_STAGE_VARS_PROPERTY));
335+
}
336+
337+
@MethodSource("v2Data")
338+
@ParameterizedTest
339+
public void validateHttpApiEventAttribute(String jsonEvent) {
340+
ServerlessServletContext servletContext = new ServerlessServletContext();
341+
HttpServletRequest request = AwsSpringHttpProcessingUtils.generateHttpServletRequest(jsonEvent, null, servletContext, mapper);
342+
assertNotNull(request.getAttribute(RequestReader.HTTP_API_EVENT_PROPERTY));
343+
}
316344

317345
@EnableAutoConfiguration
318346
@Configuration

aws-serverless-java-container-springboot4/src/test/java/com/amazonaws/serverless/proxy/spring/AwsSpringHttpProcessingUtilsTests.java

Lines changed: 45 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -224,6 +224,10 @@ public static Collection<String> v1Data() {
224224
return Arrays.asList(new String[]{API_GATEWAY_EVENT, ALB_EVENT});
225225
}
226226

227+
public static Collection<String> v2Data() {
228+
return Arrays.asList(new String[]{API_GATEWAY_EVENT_V2});
229+
}
230+
227231
@MethodSource("data")
228232
@ParameterizedTest
229233
public void validateHttpServletRequestGenerationWithInputStream(String jsonEvent) {
@@ -259,6 +263,21 @@ public void validateHttpServletRequestGenerationWithJson(String jsonEvent) {
259263
// spot check some headers
260264
assertRequest(request);
261265
}
266+
267+
@MethodSource("data")
268+
@ParameterizedTest
269+
public void validateRequestResponse(String jsonEvent) throws Exception {
270+
try (ConfigurableApplicationContext context = SpringApplication.run(EmptyApplication.class);) {
271+
ServerlessMVC mvc = ServerlessMVC.INSTANCE((ServletWebServerApplicationContext) context);
272+
AwsProxyHttpServletResponseWriter responseWriter = new AwsProxyHttpServletResponseWriter();
273+
AwsProxyResponse awsResponse = AwsSpringHttpProcessingUtils.processRequest(
274+
AwsSpringHttpProcessingUtils.generateHttpServletRequest(jsonEvent, null,
275+
mvc.getServletContext(), mapper), mvc, responseWriter);
276+
assertEquals("hello", awsResponse.getBody());
277+
assertEquals(200, awsResponse.getStatusCode());
278+
}
279+
280+
}
262281

263282

264283
@MethodSource("v1Data")
@@ -269,7 +288,7 @@ public void validateLambdaContextAttribute(String jsonEvent) {
269288
assertNotNull(request.getAttribute(RequestReader.API_GATEWAY_EVENT_PROPERTY));
270289
}
271290

272-
@MethodSource("v1Data")
291+
@MethodSource("data")
273292
@ParameterizedTest
274293
public void validateSecurityContextAttribute(String jsonEvent) {
275294
ServerlessServletContext servletContext = new ServerlessServletContext();
@@ -288,7 +307,7 @@ public void validateNullMultiValueHeaders(String jsonEvent) throws Exception {
288307
assertNotNull(request);
289308
}
290309

291-
@MethodSource("v1Data")
310+
@MethodSource("data")
292311
@ParameterizedTest
293312
public void validateBase64EncodedBody(String jsonEvent) throws Exception {
294313
String base64Body = java.util.Base64.getEncoder().encodeToString("test body".getBytes(StandardCharsets.UTF_8));
@@ -301,6 +320,30 @@ public void validateBase64EncodedBody(String jsonEvent) throws Exception {
301320
assertNotNull(request);
302321
}
303322

323+
@MethodSource("v2Data")
324+
@ParameterizedTest
325+
public void validateHttpApiContextAttribute(String jsonEvent) {
326+
ServerlessServletContext servletContext = new ServerlessServletContext();
327+
HttpServletRequest request = AwsSpringHttpProcessingUtils.generateHttpServletRequest(jsonEvent, null, servletContext, mapper);
328+
assertNotNull(request.getAttribute(RequestReader.HTTP_API_CONTEXT_PROPERTY));
329+
}
330+
331+
@MethodSource("v2Data")
332+
@ParameterizedTest
333+
public void validateHttpApiStageVarsAttribute(String jsonEvent) {
334+
ServerlessServletContext servletContext = new ServerlessServletContext();
335+
HttpServletRequest request = AwsSpringHttpProcessingUtils.generateHttpServletRequest(jsonEvent, null, servletContext, mapper);
336+
assertNotNull(request.getAttribute(RequestReader.HTTP_API_STAGE_VARS_PROPERTY));
337+
}
338+
339+
@MethodSource("v2Data")
340+
@ParameterizedTest
341+
public void validateHttpApiEventAttribute(String jsonEvent) {
342+
ServerlessServletContext servletContext = new ServerlessServletContext();
343+
HttpServletRequest request = AwsSpringHttpProcessingUtils.generateHttpServletRequest(jsonEvent, null, servletContext, mapper);
344+
assertNotNull(request.getAttribute(RequestReader.HTTP_API_EVENT_PROPERTY));
345+
}
346+
304347
@EnableAutoConfiguration
305348
@Configuration
306349
@EnableWebSecurity

0 commit comments

Comments
 (0)