From bb9fda2fc0df08f13d80545909d28f59461c5a1e Mon Sep 17 00:00:00 2001 From: Oleg Zhurakousky Date: Wed, 1 Mar 2023 12:36:27 +0100 Subject: [PATCH] GH-997 Adding test to validate AWS Context set as header Resolves #997 --- .../adapter/aws/FunctionInvokerTests.java | 30 ++++--------------- 1 file changed, 6 insertions(+), 24 deletions(-) diff --git a/spring-cloud-function-adapters/spring-cloud-function-adapter-aws/src/test/java/org/springframework/cloud/function/adapter/aws/FunctionInvokerTests.java b/spring-cloud-function-adapters/spring-cloud-function-adapter-aws/src/test/java/org/springframework/cloud/function/adapter/aws/FunctionInvokerTests.java index 3c67693a0..504aeb42e 100644 --- a/spring-cloud-function-adapters/spring-cloud-function-adapter-aws/src/test/java/org/springframework/cloud/function/adapter/aws/FunctionInvokerTests.java +++ b/spring-cloud-function-adapters/spring-cloud-function-adapter-aws/src/test/java/org/springframework/cloud/function/adapter/aws/FunctionInvokerTests.java @@ -44,6 +44,7 @@ import com.amazonaws.services.lambda.runtime.events.SQSEvent; import com.fasterxml.jackson.databind.ObjectMapper; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; +import org.mockito.Mockito; import reactor.core.publisher.Flux; import reactor.core.publisher.Mono; @@ -802,7 +803,7 @@ public class FunctionInvokerTests { InputStream targetStream = new ByteArrayInputStream(this.sampleLBEvent.getBytes()); ByteArrayOutputStream output = new ByteArrayOutputStream(); - invoker.handleRequest(targetStream, output, null); + invoker.handleRequest(targetStream, output, Mockito.mock(Context.class)); Map result = mapper.readValue(output.toByteArray(), Map.class); assertThat(result.get("body")).isEqualTo("\"Hello from ELB\""); @@ -1022,26 +1023,6 @@ public class FunctionInvokerTests { assertThat(headers.get("foo")).isEqualTo("bar"); } -// @SuppressWarnings("rawtypes") -// @Test -// public void testApiGatewayInAndOutWithException() throws Exception { -// System.setProperty("MAIN_CLASS", ApiGatewayConfiguration.class.getName()); -// System.setProperty("spring.cloud.function.definition", "inputOutputApiEventException"); -// FunctionInvoker invoker = new FunctionInvoker(); -// -// InputStream targetStream = new ByteArrayInputStream(this.apiGatewayEvent.getBytes()); -// ByteArrayOutputStream output = new ByteArrayOutputStream(); -// invoker.handleRequest(targetStream, output, null); -// -// Map result = mapper.readValue(output.toByteArray(), Map.class); -// assertThat(result.get("body")).isEqualTo("Intentional"); -// -// Map headers = (Map) result.get("headers"); -// assertThat(headers.get("foo")).isEqualTo("bar"); -// } - - - @SuppressWarnings("rawtypes") @Test public void testApiGatewayEventAsMessage() throws Exception { @@ -1373,9 +1354,10 @@ public class FunctionInvokerTests { @Bean public Function, String> inputLBEventAsMessage(JsonMapper jsonMapper) { - return v -> { - System.out.println("Received: " + v); - return v.getPayload().getBody(); + return message -> { + System.out.println("Received: " + message); + assertThat(message.getHeaders().get(AWSLambdaUtils.AWS_CONTEXT)).isNotNull(); + return message.getPayload().getBody(); }; }