From 15bbf4196d3603caf7392a368165675ad7f9c7da Mon Sep 17 00:00:00 2001 From: Sergio del Amo Date: Thu, 1 Jun 2023 09:28:41 +0200 Subject: [PATCH] fix: Micronaut Lambda Test compilation with 3.9.2 Close: #1742 - Micronaut Framework 3.9.2 - ignore test in tck fix test --- .../logging/CloudwatchLoggingSpec.groovy | 22 +++++++++---------- .../test/MicronautLambdaJunit5Extension.java | 3 ++- .../test/annotation/MicronautLambdaTest.java | 10 +++++++++ gradle/libs.versions.toml | 4 ++-- ...onautLambdaHandlerHttpServerTestSuite.java | 4 +++- 5 files changed, 27 insertions(+), 16 deletions(-) diff --git a/aws-cloudwatch-logging/src/test/groovy/io/micronaut/aws/cloudwatch/logging/CloudwatchLoggingSpec.groovy b/aws-cloudwatch-logging/src/test/groovy/io/micronaut/aws/cloudwatch/logging/CloudwatchLoggingSpec.groovy index 37bde4d3e3..686685eb7c 100644 --- a/aws-cloudwatch-logging/src/test/groovy/io/micronaut/aws/cloudwatch/logging/CloudwatchLoggingSpec.groovy +++ b/aws-cloudwatch-logging/src/test/groovy/io/micronaut/aws/cloudwatch/logging/CloudwatchLoggingSpec.groovy @@ -54,25 +54,23 @@ class CloudwatchLoggingSpec extends Specification { mockLogging.getPutLogsRequestList().size() != 0 } - def putLogRequestList = ((MockLogging) logging).getPutLogsRequestList() + List putLogRequestList = ((MockLogging) logging).getPutLogsRequestList() putLogRequestList.stream().allMatch(x -> x.logGroupName() == applicationConfiguration.getName().get()) putLogRequestList.stream().allMatch(x -> x.logStreamName() == testHost) ObjectMapper mapper = ObjectMapper.getDefault() - def logEntries = new ArrayList>() + List> logEntries = new ArrayList>() - putLogRequestList.forEach( - x -> { - x.logEvents().stream().forEach(y -> logEntries.add( - mapper.readValue(y.message(), HashMap.class) as Map - )) - } - ) + for (PutLogEventsRequest x : putLogRequestList) { + for (InputLogEvent y : x.logEvents()) { + logEntries.add(mapper.readValue(y.message(), HashMap.class) as Map) + } + } - logEntries.stream().anyMatch(x -> x.logger == 'io.micronaut.context.env.DefaultEnvironment') - logEntries.stream().anyMatch(x -> x.logger == 'io.micronaut.aws.cloudwatch.logging.CloudwatchLoggingSpec') - logEntries.stream().anyMatch(x -> x.message == logMessage) + logEntries.any { it['logger'] == 'io.micronaut.context.DefaultApplicationContext$RuntimeConfiguredEnvironment' } + logEntries.any { it['logger'] == 'io.micronaut.aws.cloudwatch.logging.CloudwatchLoggingSpec' } + logEntries.any { it['message'] == logMessage } MockAppender.getEvents().size() == 0 when: diff --git a/function-aws-test/src/main/java/io/micronaut/function/aws/test/MicronautLambdaJunit5Extension.java b/function-aws-test/src/main/java/io/micronaut/function/aws/test/MicronautLambdaJunit5Extension.java index 01599a6281..06e3ebeba9 100644 --- a/function-aws-test/src/main/java/io/micronaut/function/aws/test/MicronautLambdaJunit5Extension.java +++ b/function-aws-test/src/main/java/io/micronaut/function/aws/test/MicronautLambdaJunit5Extension.java @@ -57,7 +57,8 @@ private MicronautTestValue buildValueObject(MicronautLambdaTest micronautTest) { micronautTest.rebuildContext(), micronautTest.contextBuilder(), micronautTest.transactionMode(), - micronautTest.startApplication()); + micronautTest.startApplication(), + micronautTest.resolveParameters()); } @Override diff --git a/function-aws-test/src/main/java/io/micronaut/function/aws/test/annotation/MicronautLambdaTest.java b/function-aws-test/src/main/java/io/micronaut/function/aws/test/annotation/MicronautLambdaTest.java index 8e2b48751e..9065ed0257 100644 --- a/function-aws-test/src/main/java/io/micronaut/function/aws/test/annotation/MicronautLambdaTest.java +++ b/function-aws-test/src/main/java/io/micronaut/function/aws/test/annotation/MicronautLambdaTest.java @@ -105,4 +105,14 @@ * @return true if {@link io.micronaut.runtime.EmbeddedApplication} should be started */ boolean startApplication() default true; + + /** + * By default, with JUnit 5 the test method parameters will be resolved to beans if possible. + * This behaviour can be problematic if in combination with the {@code ParameterizedTest} annotation. + * Setting this member to {@code false} will completely disable bean resolution for method parameters. + *

+ * + * @return Whether to resolve test method parameters as beans. + */ + boolean resolveParameters() default true; } diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index a232811d9a..b42001c7f7 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,5 +1,5 @@ [versions] -micronaut = "3.8.8" +micronaut = "3.9.2" micronaut-docs = "2.0.0" micronaut-test = "3.9.1" groovy = "3.0.13" @@ -16,7 +16,7 @@ managed-aws-lambda = '1.2.2' managed-aws-lambda-events = '3.11.1' managed-aws-serverless-core = '1.9.2' managed-aws-cdk-lib='2.73.0' -micronaut-starter = "3.8.8" +micronaut-starter = "3.9.2" servlet-api = "2.5" slf4j = "1.7.36" javapoet = "1.13.0" diff --git a/test-suite-http-server-tck-function-aws-api-proxy/src/test/java/io/micronaut/http/server/tck/lambda/tests/MicronautLambdaHandlerHttpServerTestSuite.java b/test-suite-http-server-tck-function-aws-api-proxy/src/test/java/io/micronaut/http/server/tck/lambda/tests/MicronautLambdaHandlerHttpServerTestSuite.java index 4b1692736a..543b22ad2e 100644 --- a/test-suite-http-server-tck-function-aws-api-proxy/src/test/java/io/micronaut/http/server/tck/lambda/tests/MicronautLambdaHandlerHttpServerTestSuite.java +++ b/test-suite-http-server-tck-function-aws-api-proxy/src/test/java/io/micronaut/http/server/tck/lambda/tests/MicronautLambdaHandlerHttpServerTestSuite.java @@ -15,7 +15,9 @@ "io.micronaut.http.server.tck.tests.BodyTest", "io.micronaut.http.server.tck.tests.OctetTest", "io.micronaut.http.server.tck.tests.endpoints.health.HealthTest", - "io.micronaut.http.server.tck.tests.staticresources.StaticResourceTest" + "io.micronaut.http.server.tck.tests.staticresources.StaticResourceTest", + "io.micronaut.http.server.tck.tests.cors.CrossOriginTest", + "io.micronaut.http.server.tck.tests.constraintshandler.ControllerConstraintHandlerTest" }) public class MicronautLambdaHandlerHttpServerTestSuite { }