Skip to content

Commit 87bda8f

Browse files
committed
add attribute and null tests to http process test in SB3/4
1 parent 7bdce8e commit 87bda8f

File tree

2 files changed

+90
-0
lines changed

2 files changed

+90
-0
lines changed

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

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import java.nio.charset.StandardCharsets;
55
import java.util.Arrays;
66
import java.util.Collection;
7+
import java.util.Map;
78

89
import com.amazonaws.serverless.proxy.RequestReader;
910
import com.amazonaws.serverless.proxy.model.AlbContext;
@@ -218,6 +219,10 @@ public static Collection<String> data() {
218219
return Arrays.asList(new String[]{API_GATEWAY_EVENT, API_GATEWAY_EVENT_V2, ALB_EVENT});
219220
}
220221

222+
public static Collection<String> v1Data() {
223+
return Arrays.asList(new String[]{API_GATEWAY_EVENT, ALB_EVENT});
224+
}
225+
221226
@MethodSource("data")
222227
@ParameterizedTest
223228
public void validateHttpServletRequestGenerationWithInputStream(String jsonEvent) {
@@ -268,6 +273,46 @@ public void validateRequestResponse(String jsonEvent) throws Exception {
268273
}
269274

270275
}
276+
277+
@MethodSource("v1Data")
278+
@ParameterizedTest
279+
public void validateLambdaContextAttribute(String jsonEvent) {
280+
ServerlessServletContext servletContext = new ServerlessServletContext();
281+
HttpServletRequest request = AwsSpringHttpProcessingUtils.generateHttpServletRequest(jsonEvent, null, servletContext, mapper);
282+
assertNotNull(request.getAttribute(RequestReader.API_GATEWAY_EVENT_PROPERTY));
283+
}
284+
285+
@MethodSource("v1Data")
286+
@ParameterizedTest
287+
public void validateSecurityContextAttribute(String jsonEvent) {
288+
ServerlessServletContext servletContext = new ServerlessServletContext();
289+
HttpServletRequest request = AwsSpringHttpProcessingUtils.generateHttpServletRequest(jsonEvent, null, servletContext, mapper);
290+
assertNotNull(request.getAttribute(RequestReader.JAX_SECURITY_CONTEXT_PROPERTY));
291+
}
292+
293+
@MethodSource("v1Data")
294+
@ParameterizedTest
295+
public void validateNullMultiValueHeaders(String jsonEvent) throws Exception {
296+
Map<String, Object> event = mapper.readValue(jsonEvent, Map.class);
297+
event.put("multiValueHeaders", null);
298+
String modifiedEvent = mapper.writeValueAsString(event);
299+
ServerlessServletContext servletContext = new ServerlessServletContext();
300+
HttpServletRequest request = AwsSpringHttpProcessingUtils.generateHttpServletRequest(modifiedEvent, null, servletContext, mapper);
301+
assertNotNull(request);
302+
}
303+
304+
@MethodSource("v1Data")
305+
@ParameterizedTest
306+
public void validateBase64EncodedBody(String jsonEvent) throws Exception {
307+
String base64Body = java.util.Base64.getEncoder().encodeToString("test body".getBytes(StandardCharsets.UTF_8));
308+
Map<String, Object> event = mapper.readValue(jsonEvent, Map.class);
309+
event.put("body", base64Body);
310+
event.put("isBase64Encoded", true);
311+
String modifiedEvent = mapper.writeValueAsString(event);
312+
ServerlessServletContext servletContext = new ServerlessServletContext();
313+
HttpServletRequest request = AwsSpringHttpProcessingUtils.generateHttpServletRequest(modifiedEvent, null, servletContext, mapper);
314+
assertNotNull(request);
315+
}
271316

272317
@EnableAutoConfiguration
273318
@Configuration

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

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import java.nio.charset.StandardCharsets;
55
import java.util.Arrays;
66
import java.util.Collection;
7+
import java.util.Map;
78

89
import com.amazonaws.serverless.proxy.RequestReader;
910
import com.amazonaws.serverless.proxy.model.AlbContext;
@@ -219,6 +220,10 @@ public static Collection<String> data() {
219220
return Arrays.asList(new String[]{API_GATEWAY_EVENT, API_GATEWAY_EVENT_V2, ALB_EVENT});
220221
}
221222

223+
public static Collection<String> v1Data() {
224+
return Arrays.asList(new String[]{API_GATEWAY_EVENT, ALB_EVENT});
225+
}
226+
222227
@MethodSource("data")
223228
@ParameterizedTest
224229
public void validateHttpServletRequestGenerationWithInputStream(String jsonEvent) {
@@ -256,6 +261,46 @@ public void validateHttpServletRequestGenerationWithJson(String jsonEvent) {
256261
}
257262

258263

264+
@MethodSource("v1Data")
265+
@ParameterizedTest
266+
public void validateLambdaContextAttribute(String jsonEvent) {
267+
ServerlessServletContext servletContext = new ServerlessServletContext();
268+
HttpServletRequest request = AwsSpringHttpProcessingUtils.generateHttpServletRequest(jsonEvent, null, servletContext, mapper);
269+
assertNotNull(request.getAttribute(RequestReader.API_GATEWAY_EVENT_PROPERTY));
270+
}
271+
272+
@MethodSource("v1Data")
273+
@ParameterizedTest
274+
public void validateSecurityContextAttribute(String jsonEvent) {
275+
ServerlessServletContext servletContext = new ServerlessServletContext();
276+
HttpServletRequest request = AwsSpringHttpProcessingUtils.generateHttpServletRequest(jsonEvent, null, servletContext, mapper);
277+
assertNotNull(request.getAttribute(RequestReader.JAX_SECURITY_CONTEXT_PROPERTY));
278+
}
279+
280+
@MethodSource("v1Data")
281+
@ParameterizedTest
282+
public void validateNullMultiValueHeaders(String jsonEvent) throws Exception {
283+
Map<String, Object> event = mapper.readValue(jsonEvent, Map.class);
284+
event.put("multiValueHeaders", null);
285+
String modifiedEvent = mapper.writeValueAsString(event);
286+
ServerlessServletContext servletContext = new ServerlessServletContext();
287+
HttpServletRequest request = AwsSpringHttpProcessingUtils.generateHttpServletRequest(modifiedEvent, null, servletContext, mapper);
288+
assertNotNull(request);
289+
}
290+
291+
@MethodSource("v1Data")
292+
@ParameterizedTest
293+
public void validateBase64EncodedBody(String jsonEvent) throws Exception {
294+
String base64Body = java.util.Base64.getEncoder().encodeToString("test body".getBytes(StandardCharsets.UTF_8));
295+
Map<String, Object> event = mapper.readValue(jsonEvent, Map.class);
296+
event.put("body", base64Body);
297+
event.put("isBase64Encoded", true);
298+
String modifiedEvent = mapper.writeValueAsString(event);
299+
ServerlessServletContext servletContext = new ServerlessServletContext();
300+
HttpServletRequest request = AwsSpringHttpProcessingUtils.generateHttpServletRequest(modifiedEvent, null, servletContext, mapper);
301+
assertNotNull(request);
302+
}
303+
259304
@EnableAutoConfiguration
260305
@Configuration
261306
@EnableWebSecurity

0 commit comments

Comments
 (0)