@@ -1062,7 +1062,7 @@ class ClientApiGenTest {
10621062 .plus(codeGenResult.javaInterfaces)
10631063 )
10641064
1065- // And assert the Search_Result_MovieProjection instance has a excplicit schemaType
1065+ // And assert the Search_Result_MovieProjection instance has an explicit schemaType
10661066 val testClassLoader = codegenTestClassLoader(compilation, javaClass.classLoader)
10671067 // Projection class
10681068 val searchMovieProjectionClass =
@@ -1373,26 +1373,38 @@ class ClientApiGenTest {
13731373 fun generateOnlyRequiredDataTypesForQuery () {
13741374 val schema = """
13751375 type Query {
1376- shows(showFilter: ShowFilter): [Show ]
1376+ shows(showFilter: ShowFilter): [Video ]
13771377 people(personFilter: PersonFilter): [Person]
13781378 }
13791379
1380- type Show {
1380+ union Video = Show | Movie
1381+
1382+ type Movie {
13811383 title: String
1384+ duration: Int
1385+ related: Related
1386+ }
1387+
1388+ type Related {
1389+ video: Video
13821390 }
13831391
1384- enum ShouldNotInclude {
1385- YES,NO
1392+ type Show {
1393+ title: String
1394+ tags(from: Int, to: Int, sourceType: SourceType): [ShowTag]
1395+ isLive(countryFilter: CountryFilter): Boolean
13861396 }
13871397
1398+ enum ShouldNotInclude { YES, NO }
1399+
13881400 input NotUsed {
13891401 field: String
13901402 }
13911403
13921404 input ShowFilter {
13931405 title: String
13941406 showType: ShowType
1395- similarTo: SimilarityInput
1407+ similarTo: SimilarityInput
13961408 }
1397 <
8B92
td data-grid-cell-id="diff-a2e70291a4b0739f0ba5f85bf9a5fe61cd341b482571e9d791064a001efdb52f-1397-1409-1" data-selected="false" role="gridcell" style="background-color:var(--bgColor-default);text-align:center" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number position-relative diff-line-number-neutral left-side">1409
13981410 input SimilarityInput {
@@ -1403,15 +1415,44 @@ class ClientApiGenTest {
14031415 MOVIE, SERIES
14041416 }
14051417
1418+ input CountryFilter {
1419+ countriesToExclude: [String]
1420+ }
1421+
1422+ enum SourceType { FOO, BAR }
1423+
14061424 type Person {
14071425 name: String
14081426 }
14091427 """ .trimIndent()
14101428
1411- val codeGenResult = CodeGen (CodeGenConfig (schemas = setOf (schema), packageName = basePackageName, generateClientApi = true , includeQueries = setOf (" shows" ), generateDataTypes = false , writeToFiles = false )).generate()
1412- assertThat(codeGenResult.javaDataTypes.size).isEqualTo(2 )
1413- assertThat(codeGenResult.javaDataTypes).extracting(" typeSpec" ).extracting(" name" ).containsExactly(" ShowFilter" , " SimilarityInput" )
1414- assertThat(codeGenResult.javaEnumTypes).extracting(" typeSpec" ).extracting(" name" ).containsExactly(" ShowType" )
1429+ val codeGenResult = CodeGen (
1430+ CodeGenConfig (
1431+ schemas = setOf (schema),
1432+ packageName = basePackageName,
1433+ generateClientApi = true ,
1434+ includeQueries = setOf (" shows" ),
1435+ generateDataTypes = false ,
1436+ writeToFiles = false
1437+ )
1438+ ).generate()
1439+
1440+ assertThat(codeGenResult.javaDataTypes)
1441+ .extracting(" typeSpec" ).extracting(" name" ).containsExactly(" ShowFilter" , " SimilarityInput" , " CountryFilter" )
1442+ assertThat(codeGenResult.javaEnumTypes)
1443+ .extracting(" typeSpec" ).extracting(" name" ).containsExactly(" ShowType" , " SourceType" )
1444+ assertThat(codeGenResult.javaQueryTypes)
1445+ .extracting(" typeSpec" ).extracting(" name" ).containsExactly(" ShowsGraphQLQuery" )
1446+ assertThat(codeGenResult.clientProjections)
1447+ .extracting(" typeSpec" ).extracting(" name" ).containsExactly(
1448+ " ShowsProjectionRoot" ,
1449+ " Shows_ShowProjection" ,
1450+ " Shows_MovieProjection" ,
1451+ " Shows_Movie_RelatedProjection" ,
1452+ " Shows_Movie_Related_VideoProjection" ,
1453+ " Shows_Movie_Related_Video_ShowProjection" ,
1454+ " Shows_Movie_Related_Video_MovieProjection"
1455+ )
14151456
14161457 assertCompilesJava(codeGenResult.clientProjections + codeGenResult.javaDataTypes + codeGenResult.javaEnumTypes)
14171458 }
@@ -1426,11 +1467,11 @@ class ClientApiGenTest {
14261467
14271468 type Show {
14281469 title: String
1470+ tags(from: Int, to: Int, sourceType: SourceType): [ShowTag]
1471+ isLive(countryFilter: CountryFilter): Boolean
14291472 }
14301473
1431- enum ShouldNotInclude {
1432- YES,NO
1433- }
1474+ enum ShouldNotInclude { YES, NO }
14341475
14351476 input NotUsed {
14361477 field: String
@@ -1439,7 +1480,7 @@ class ClientApiGenTest {
14391480 input ShowFilter {
14401481 title: String
14411482 showType: ShowType
1442- similarTo: SimilarityInput
1483+ similarTo: SimilarityInput
14431484 }
14441485
14451486 input SimilarityInput {
@@ -1450,15 +1491,36 @@ class ClientApiGenTest {
14501491 MOVIE, SERIES
14511492 }
14521493
1494+ input CountryFilter {
1495+ countriesToExclude: [String]
1496+ }
1497+
1498+ enum SourceType { FOO, BAR }
1499+
14531500 type Person {
14541501 name: String
14551502 }
14561503 """ .trimIndent()
14571504
1458- val codeGenResult = CodeGen (CodeGenConfig (schemas = setOf (schema), packageName = basePackageName, generateClientApi = true , includeMutations = setOf (" shows" ), generateDataTypes = false , writeToFiles = false )).generate()
1459- assertThat(codeGenResult.javaDataTypes.size).isEqualTo(2 )
1460- assertThat(codeGenResult.javaDataTypes).extracting(" typeSpec" ).extracting(" name" ).containsExactly(" ShowFilter" , " SimilarityInput" )
1461- assertThat(codeGenResult.javaEnumTypes).extracting(" typeSpec" ).extracting(" name" ).containsExactly(" ShowType" )
1505+ val codeGenResult = CodeGen (
1506+ CodeGenConfig (
1507+ schemas = setOf (schema),
1508+ packageName = basePackageName,
1509+ generateClientApi = true ,
1510+ includeMutations = setOf (" shows" ),
1511+ generateDataTypes = false ,
1512+ writeToFiles = false
1513+ )
1514+ ).generate()
1515+
1516+ assertThat(codeGenResult.javaDataTypes)
1517+ .extracting(" typeSpec" ).extracting(" name" ).containsExactly(" ShowFilter" , " SimilarityInput" , " CountryFilter" )
1518+ assertThat(codeGenResult.javaEnumTypes)
1519+ .extracting(" typeSpec" ).extracting(" name" ).containsExactly(" ShowType" , " SourceType" )
1520+ assertThat(codeGenResult.javaQueryTypes)
1521+ .extracting(" typeSpec" ).extracting(" name" ).containsExactly(" ShowsGraphQLQuery" )
1522+ assertThat(codeGenResult.clientProjections)
1523+ .extracting(" typeSpec" ).extracting(" name" ).containsExactly(" ShowsProjectionRoot" )
14621524
14631525 assertCompilesJava(codeGenResult.clientProjections + codeGenResult.javaDataTypes + codeGenResult.javaEnumTypes)
14641526 }
@@ -1644,7 +1706,7 @@ class ClientApiGenTest {
16441706 assertThat(methodWithArgs.parameters[0 ].type.toString()).isEqualTo(" java.lang.Boolean" )
16451707 }
16461708
1647- // TODO[BGP] Migrate to [CodeGentTestClassLoader ]
1709+ // TODO[BGP] Migrate to [CodegentTestClassLoader ]
16481710 private fun compileAndGetClass (dataTypes : List <JavaFile >, type : String ): Class <* > {
16491711 val packageNameAsUnixPath = basePackageName.replace(" ." , " /" )
16501712 val compilation = assertCompilesJava(dataTypes)
0 commit comments