Skip to content

Commit 73a342e

Browse files
committed
Add test to show how to generate nullable types instead of primitives #1023
1 parent 58f1061 commit 73a342e

File tree

1 file changed

+22
-0
lines changed

1 file changed

+22
-0
lines changed

src/test/java/com/kobylynskyi/graphql/codegen/GraphQLCodegenOptionalTest.java

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,10 @@
1212
import java.io.File;
1313
import java.io.IOException;
1414
import java.nio.file.Paths;
15+
import java.util.HashMap;
1516
import java.util.Objects;
1617

18+
import static com.kobylynskyi.graphql.codegen.TestUtils.assertFileContainsElements;
1719
import static com.kobylynskyi.graphql.codegen.TestUtils.assertSameTrimmedContent;
1820
import static com.kobylynskyi.graphql.codegen.TestUtils.getFileByName;
1921

@@ -98,6 +100,26 @@ void generate_OptionalFieldInInterfaceAndMandatoryInType() throws Exception {
98100
getFileByName(files, "TypeWithMandatoryField.java"));
99101
}
100102

103+
/**
104+
* @see <a href="https://github.com/kobylynskyi/graphql-java-codegen/issues/1023">Related issue in GitHub</a>
105+
*/
106+
@Test
107+
void generate_ObjectsInsteadOfPrimitives() throws Exception {
108+
mappingConfig.setCustomTypesMapping(new HashMap<String, String>() {{
109+
put("Int!", "Integer");
110+
}});
111+
schemaFinder.setIncludePattern("optional-vs-mandatory-types.graphqls");
112+
113+
generate();
114+
115+
File[] files = Objects.requireNonNull(outputJavaClassesDir.listFiles());
116+
117+
// Integer is generated instead of int
118+
assertFileContainsElements(files, "TypeWithMandatoryField.java",
119+
" @javax.validation.constraints.NotNull",
120+
" private Integer test;");
121+
}
122+
101123
private void generate() throws IOException {
102124
new JavaGraphQLCodegen(schemaFinder.findSchemas(), outputBuildDir, mappingConfig,
103125
TestUtils.getStaticGeneratedInfo(mappingConfig)).generate();

0 commit comments

Comments
 (0)