Skip to content

Commit 9b0fd8a

Browse files
marko-bekhtageoand
authored andcommitted
Add a test for a bean where constraints are defined only in an XML
1 parent 2c80968 commit 9b0fd8a

File tree

6 files changed

+75
-0
lines changed

6 files changed

+75
-0
lines changed

integration-tests/hibernate-validator/src/main/java/io/quarkus/it/hibernate/validator/HibernateValidatorTestResource.java

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@
4848
import io.quarkus.it.hibernate.validator.injection.InjectedRuntimeConstraintValidatorConstraint;
4949
import io.quarkus.it.hibernate.validator.injection.MyService;
5050
import io.quarkus.it.hibernate.validator.orm.TestEntity;
51+
import io.quarkus.it.hibernate.validator.xml.ValidationServiceBasedOnXmlConstraints;
5152
import io.quarkus.runtime.StartupEvent;
5253

5354
@Path("/hibernate-validator/test")
@@ -64,6 +65,9 @@ public class HibernateValidatorTestResource
6465
@Inject
6566
EnhancedGreetingService enhancedGreetingService;
6667

68+
@Inject
69+
ValidationServiceBasedOnXmlConstraints validationServiceBasedOnXmlConstraints;
70+
6771
@Inject
6872
ZipCodeService zipCodeResource;
6973

@@ -341,6 +345,17 @@ public String testClockBasedConstraints() {
341345
return result.build();
342346
}
343347

348+
@GET
349+
@Path("/constraints-defined-in-xml")
350+
@Produces(MediaType.TEXT_PLAIN)
351+
public String testConstraintsDefinedInXml() {
352+
ResultBuilder result = new ResultBuilder();
353+
354+
result.append(formatViolations(validationServiceBasedOnXmlConstraints.validateSomeMyXmlBean()));
355+
356+
return result.build();
357+
}
358+
344359
private String formatViolations(Set<? extends ConstraintViolation<?>> violations) {
345360
if (violations.isEmpty()) {
346361
return "passed";
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
package io.quarkus.it.hibernate.validator.xml;
2+
3+
public class MyXmlBean {
4+
int id = 0;
5+
String name;
6+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
package io.quarkus.it.hibernate.validator.xml;
2+
3+
import java.util.Set;
4+
5+
import jakarta.enterprise.context.ApplicationScoped;
6+
import jakarta.inject.Inject;
7+
import jakarta.validation.ConstraintViolation;
8+
import jakarta.validation.Validator;
9+
10+
@ApplicationScoped
11+
public class ValidationServiceBasedOnXmlConstraints {
12+
13+
@Inject
14+
Validator validator;
15+
16+
public Set<ConstraintViolation<MyXmlBean>> validateSomeMyXmlBean() {
17+
return validator.validate(new MyXmlBean());
18+
}
19+
}
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<validation-config
3+
xmlns="https://jakarta.ee/xml/ns/validation/configuration"
4+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
5+
xsi:schemaLocation="https://jakarta.ee/xml/ns/validation/configuration https://jakarta.ee/xml/ns/validation/validation-configuration-3.0.xsd"
6+
version="3.0">
7+
<constraint-mapping>META-INF/validation/constraints-my-xml-bean.xml</constraint-mapping>
8+
</validation-config>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<constraint-mappings
3+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4+
xsi:schemaLocation="https://jakarta.ee/xml/ns/validation/mapping https://jakarta.ee/xml/ns/validation/validation-mapping-3.0.xsd"
5+
xmlns="https://jakarta.ee/xml/ns/validation/mapping" version="3.0">
6+
7+
<bean class="io.quarkus.it.hibernate.validator.xml.MyXmlBean">
8+
<field name="id">
9+
<constraint annotation="jakarta.validation.constraints.Positive"/>
10+
</field>
11+
<field name="name">
12+
<constraint annotation="jakarta.validation.constraints.NotNull"/>
13+
</field>
14+
</bean>
15+
</constraint-mappings>

integration-tests/hibernate-validator/src/test/java/io/quarkus/it/hibernate/validator/HibernateValidatorFunctionalityTest.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -542,4 +542,16 @@ void testClockBasedConstraints() {
542542
.then()
543543
.body(is("passed"));
544544
}
545+
546+
@Test
547+
void testConstraintsDefinedInXml() {
548+
RestAssured.given()
549+
.when()
550+
.get("/hibernate-validator/test/constraints-defined-in-xml")
551+
.then()
552+
.statusCode(200)
553+
.body(containsString("failed"),
554+
containsString("id (must be greater than 0)"),
555+
containsString("name (must not be null)"));
556+
}
545557
}

0 commit comments

Comments
 (0)