Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -124,7 +124,6 @@ public void execute(Fragment frag, Writer out) throws IOException {
return;
}
String formatted = text
.replace("\\n", SINGLE_SPACE)
.replaceAll(WHITESPACE_REGEX, SINGLE_SPACE)
.replaceAll("\\< ", "<")
.replaceAll(" >", ">")
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{{^useOptional}}{{>beanValidationCore}}{{/useOptional}}{{#useOptional}}{{#required}}{{>beanValidationCore}}{{/required}}{{/useOptional}}
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{{#isBodyParam}}{{>paramDoc}}{{#useBeanValidation}} @Valid{{/useBeanValidation}} @RequestBody{{^required}}(required = false){{/required}} {{^reactive}}{{{dataType}}}{{/reactive}}{{#reactive}}{{^isArray}}Mono<{{{dataType}}}>{{/isArray}}{{#isArray}}Flux<{{{baseType}}}>{{/isArray}}{{/reactive}} {{paramName}}{{#useBeanValidation}}{{#addBindingResult}}, BindingResult bindingResult{{/addBindingResult}}{{/useBeanValidation}}{{/isBodyParam}}
{{#isBodyParam}}{{>paramDoc}}{{#useBeanValidation}} @Valid{{>beanValidationBodyParams}}{{/useBeanValidation}} @RequestBody{{^required}}(required = false){{/required}} {{^reactive}}{{{dataType}}}{{/reactive}}{{#reactive}}{{^isArray}}Mono<{{{dataType}}}>{{/isArray}}{{#isArray}}Flux<{{{baseType}}}>{{/isArray}}{{/reactive}} {{paramName}}{{#useBeanValidation}}{{#addBindingResult}}, BindingResult bindingResult{{/addBindingResult}}{{/useBeanValidation}}{{/isBodyParam}}
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@
import com.github.javaparser.ast.body.MethodDeclaration;
import com.github.javaparser.ast.body.Parameter;
import com.github.javaparser.ast.body.VariableDeclarator;
import com.github.javaparser.ast.expr.AnnotationExpr;
import com.github.javaparser.ast.expr.Expression;
import com.github.javaparser.ast.type.ClassOrInterfaceType;
import com.github.javaparser.ast.type.Type;
Expand Down Expand Up @@ -216,6 +217,15 @@ void shouldGenerateValidations(boolean useLombok, boolean bigDecimalsAsStrings)
assertHasCollectionParamWithType(getPaymentsMethod, "status", "List", "String");
assertHasCollectionParamWithType(getPaymentsMethod, "headerParams", "List", "String");

MethodDeclaration createPaymentsMethod = StaticJavaParser.parse(paymentsApiFile)
.findAll(MethodDeclaration.class)
.stream()
.filter(it -> "createPayments".equals(it.getName().toString()))
.findFirst().orElseThrow();
AnnotationExpr sizeAnnotation = createPaymentsMethod.getParameterByName("multiLinePaymentRequest").orElseThrow()
.getAnnotationByName("Size").orElseThrow();
assertEquals("@Size(min = 1, max = 55)", sizeAnnotation.toString());

File paymentRequestLine = files.stream().filter(file -> file.getName().equals("PaymentRequestLine.java"))
.findFirst()
.get();
Expand Down Expand Up @@ -249,6 +259,7 @@ void shouldGenerateValidations(boolean useLombok, boolean bigDecimalsAsStrings)
assertFieldValueAssignment(
multiLinePaymentRequestUnit, "arrangementIds", "new ArrayList<>()");
assertFieldAnnotation(multiLinePaymentRequestUnit, "uniqueLines", "NotNull");
assertFieldAnnotation(multiLinePaymentRequestUnit, "name", "Pattern", "@Pattern(regexp = \"^[^\\\\r\\\\n]{1,64}$\")");
assertFieldValueAssignment(
multiLinePaymentRequestUnit, "uniqueArrangementIds", null);

Expand Down Expand Up @@ -440,6 +451,15 @@ private static void assertFieldAnnotation(
fieldDeclaration.getAnnotationByName(annotationName).isPresent(), is(true));
}

private static void assertFieldAnnotation(
CompilationUnit unit, String fieldName, String annotationName, String value) throws FileNotFoundException {
FieldDeclaration fieldDeclaration = findFieldDeclaration(unit, fieldName);
AnnotationExpr annotation = fieldDeclaration.getAnnotationByName(annotationName)
.orElseThrow(() -> new AssertionError(
"Expect annotation to be present on field: " + annotationName + " " + fieldName));
assertThat(annotation.toString(), equalTo(value));
}

private static void assertFieldValueAssignment(
CompilationUnit unit, String fieldName, String valueAssignment) throws FileNotFoundException {
FieldDeclaration fieldDeclaration = findFieldDeclaration(unit, fieldName);
Expand Down
3 changes: 3 additions & 0 deletions boat-scaffold/src/test/resources/boat-spring/openapi.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -100,6 +100,8 @@ paths:
application/json:
schema:
type: array
maxItems: 55
minItems: 1
items:
$ref: '#/components/schemas/MultiLinePaymentRequest'
responses:
Expand Down Expand Up @@ -313,6 +315,7 @@ components:
description: Request name
minLength: 3
maxLength: 251
pattern: "^[^\\r\\n]{1,64}$"
amountNumberAsString:
description: The amount string in number format
type: string
Expand Down
Loading