Skip to content

Commit 6ba0f3e

Browse files
committed
Improve testing on discriminator annotations
Signed-off-by: Ricardo Zanini <[email protected]>
1 parent e650d6c commit 6ba0f3e

File tree

3 files changed

+6175
-5513
lines changed

3 files changed

+6175
-5513
lines changed

client/deployment/src/main/resources/templates/libraries/microprofile/pojo.qute

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ import com.fasterxml.jackson.annotation.JsonProperty;
1515
@com.fasterxml.jackson.annotation.JsonTypeInfo(use = com.fasterxml.jackson.annotation.JsonTypeInfo.Id.NAME, include = com.fasterxml.jackson.annotation.JsonTypeInfo.As.PROPERTY, property = "{m.discriminator.propertyBaseName}", visible = true)
1616
@com.fasterxml.jackson.annotation.JsonSubTypes({
1717
{#for child in m.discriminator.mappedModels}
18-
@com.fasterxml.jackson.annotation.JsonSubTypes.Type(value = {package}.{child.modelName}.class, name = "{#if m.vendorExtensions.x-discriminator-value.or('') == ''}{child.mappingName}{#else}{m.vendorExtensions.x-discriminator-value}{/if}"),
18+
@com.fasterxml.jackson.annotation.JsonSubTypes.Type(value = {child.modelName}.class, name = "{#if m.vendorExtensions.x-discriminator-value.or('') == ''}{child.mappingName}{#else}{m.vendorExtensions.x-discriminator-value}{/if}"),
1919
{/for}
2020
})
2121
{#else}

client/deployment/src/test/java/io/quarkiverse/openapi/generator/deployment/wrapper/OpenApiClientGeneratorWrapperTest.java

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -45,13 +45,27 @@
4545

4646
public class OpenApiClientGeneratorWrapperTest {
4747

48+
private static Optional<MethodDeclaration> getMethodDeclarationByIdentifier(List<MethodDeclaration> methodDeclarations,
49+
String methodName) {
50+
return methodDeclarations.stream().filter(md -> md.getName().getIdentifier().equals(methodName)).findAny();
51+
}
52+
4853
@Test
49-
void verifyNOTFOUNDClass() throws java.net.URISyntaxException {
54+
void verifyDiscriminatorGeneration() throws java.net.URISyntaxException, FileNotFoundException {
5055
OpenApiClientGeneratorWrapper generatorWrapper = createGeneratorWrapper("issue-852.json");
5156
final List<File> generatedFiles = generatorWrapper.generate("org.issue852");
5257

5358
assertNotNull(generatedFiles);
5459
assertFalse(generatedFiles.isEmpty());
60+
61+
final Optional<File> classWithDiscriminator = generatedFiles.stream()
62+
.filter(f -> f.getName().endsWith("PostRevisionForDocumentRequest.java")).findFirst();
63+
assertThat(classWithDiscriminator).isPresent();
64+
65+
final CompilationUnit compilationUnit = StaticJavaParser.parse(classWithDiscriminator.orElseThrow());
66+
assertThat(compilationUnit.findFirst(ClassOrInterfaceDeclaration.class)
67+
.flatMap(first -> first.getAnnotationByClass(com.fasterxml.jackson.annotation.JsonSubTypes.class)))
68+
.isPresent();
5569
}
5670

5771
@Test
@@ -774,9 +788,4 @@ private Optional<VariableDeclarator> findVariableByName(List<FieldDeclaration> f
774788
.filter((VariableDeclarator variable) -> name.equals(variable.getName().asString()))
775789
.findFirst();
776790
}
777-
778-
private static Optional<MethodDeclaration> getMethodDeclarationByIdentifier(List<MethodDeclaration> methodDeclarations,
779-
String methodName) {
780-
return methodDeclarations.stream().filter(md -> md.getName().getIdentifier().equals(methodName)).findAny();
781-
}
782791
}

0 commit comments

Comments
 (0)