diff --git a/buildSrc/src/main/groovy/io.micronaut.build.internal.validation-test-suite.gradle b/buildSrc/src/main/groovy/io.micronaut.build.internal.validation-test-suite.gradle index 7d0268ed..382fe087 100644 --- a/buildSrc/src/main/groovy/io.micronaut.build.internal.validation-test-suite.gradle +++ b/buildSrc/src/main/groovy/io.micronaut.build.internal.validation-test-suite.gradle @@ -7,3 +7,7 @@ micronaut { // Do not build examples against M1 since the platform is not released version = "4.0.0-SNAPSHOT" } + +tasks.withType(Test).configureEach { + useJUnitPlatform() +} diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index d4ec4336..28b78733 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -29,12 +29,14 @@ jakarta-validation-tck = "3.0.1" micronaut-reactor = { module = 'io.micronaut.reactor:micronaut-reactor-bom', version.ref = "micronaut-reactor" } micronaut-rxjava2 = { module = 'io.micronaut.rxjava2:micronaut-rxjava2-bom', version.ref = "micronaut-rxjava2" } micronaut-kotlin = { module = 'io.micronaut.kotlin:micronaut-kotlin-bom', version.ref = "micronaut-kotlin" } -micronaut-test-junit5 = { module = "io.micronaut.test:micronaut-test-junit5", version.ref = "micronaut-test" } + groovy-bom = { module = "org.apache.groovy:groovy-bom", version.ref = "groovy" } groovy-json = { module = "org.apache.groovy:groovy-json" } # TESTING +micronaut-test-junit5 = { module = "io.micronaut.test:micronaut-test-junit5", version.ref = "micronaut-test" } +micronaut-test-spock = { module = "io.micronaut.test:micronaut-test-spock", version.ref = "micronaut-test" } junit-jupiter-api = { module = "org.junit.jupiter:junit-jupiter-api", version.ref = "junit5" } junit-jupiter-engine = { module = "org.junit.jupiter:junit-jupiter-engine", version.ref = "junit5" } kotlin-kotest-junit5 = { module = "io.kotest:kotest-runner-junit5-jvm", version.ref = "kotest" } diff --git a/test-suite-groovy/build.gradle b/test-suite-groovy/build.gradle index 9e143ffa..00ee0daa 100644 --- a/test-suite-groovy/build.gradle +++ b/test-suite-groovy/build.gradle @@ -1,5 +1,6 @@ plugins { id 'io.micronaut.build.internal.validation-test-suite' + id 'groovy' } dependencies { @@ -12,6 +13,7 @@ dependencies { implementation mnReactor.micronaut.reactor testImplementation project(":validation") + testImplementation project(":validation-processor") testAnnotationProcessor project(":validation-processor") testAnnotationProcessor mn.micronaut.inject.java testImplementation libs.spotbugs @@ -26,8 +28,8 @@ dependencies { testImplementation mn.micronaut.inject.java.test testImplementation mn.micronaut.jackson.databind - testImplementation("org.junit.jupiter:junit-jupiter-api") - testImplementation("io.micronaut.test:micronaut-test-junit5:3.9.2") - testRuntimeOnly("org.junit.jupiter:junit-jupiter-engine:{junitVersion}") - testImplementation("org.junit.jupiter:junit-jupiter-engine:{junitVersion}") + testImplementation libs.junit.jupiter.api + testImplementation libs.micronaut.test.spock + testImplementation libs.junit.jupiter.engine + testRuntimeOnly libs.junit.jupiter.engine } diff --git a/test-suite/src/test/java/io/micronaut/docs/validation/iterable/BookInfoSpec.java b/test-suite/src/test/java/io/micronaut/docs/validation/iterable/BookInfoSpec.java index efae047b..a126d94b 100644 --- a/test-suite/src/test/java/io/micronaut/docs/validation/iterable/BookInfoSpec.java +++ b/test-suite/src/test/java/io/micronaut/docs/validation/iterable/BookInfoSpec.java @@ -1,12 +1,14 @@ package io.micronaut.docs.validation.iterable; -import java.util.*; - import io.micronaut.test.extensions.junit5.annotation.MicronautTest; import jakarta.inject.Inject; +import jakarta.validation.ConstraintViolationException; import org.junit.jupiter.api.Test; -import jakarta.validation.ConstraintViolationException; +import java.util.Arrays; +import java.util.HashMap; +import java.util.List; +import java.util.Map; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertThrows; @@ -28,7 +30,7 @@ void testAuthorNamesAreValidated() { bookInfoService.setBookAuthors("My Book", authors) ); - assertEquals("setBookAuthors.authors[1]: must not be blank", + assertEquals("setBookAuthors.authors[1]: must not be blank", exception.getMessage()); // <1> } @@ -42,7 +44,7 @@ void testSectionsAreValidated() { bookInfoService.setBookSectionPages("My Book", sectionStartPages) ); - assertEquals("setBookSectionPages.sectionStartPages[]: must not be blank", + assertEquals("setBookSectionPages.sectionStartPages[]: must not be blank", exception.getMessage()); // <2> } diff --git a/validation/src/main/java/io/micronaut/validation/validator/DefaultConstraintDescriptor.java b/validation/src/main/java/io/micronaut/validation/validator/DefaultConstraintDescriptor.java index 950c02da..7e1b2a5b 100644 --- a/validation/src/main/java/io/micronaut/validation/validator/DefaultConstraintDescriptor.java +++ b/validation/src/main/java/io/micronaut/validation/validator/DefaultConstraintDescriptor.java @@ -152,13 +152,15 @@ public Map getAttributes() { for (Map.Entry entry : values.entrySet()) { variables.put(entry.getKey().toString(), entry.getValue()); } - final Map defaultValues = annotationValue.getDefaultValues(); - for (Map.Entry entry : defaultValues.entrySet()) { - final String n = entry.getKey().toString(); - if (!variables.containsKey(n)) { - final Object v = entry.getValue(); - if (v != null) { - variables.put(n, v); + if (annotationValue.getDefaultValues() != null) { + final Map defaultValues = annotationValue.getDefaultValues(); + for (Map.Entry entry : defaultValues.entrySet()) { + final String n = entry.getKey().toString(); + if (!variables.containsKey(n)) { + final Object v = entry.getValue(); + if (v != null) { + variables.put(n, v); + } } } }