Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
梦境迷离
Graphql Java Codegen
提交
9e19738d
G
Graphql Java Codegen
项目概览
梦境迷离
/
Graphql Java Codegen
11 个月 前同步成功
通知
2
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
G
Graphql Java Codegen
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
9e19738d
编写于
4月 28, 2021
作者:
G
Gerrit Meier
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Don't fail with enums in directive parameters.
上级
2faf31de
变更
10
隐藏空白更改
内联
并排
Showing
10 changed file
with
183 addition
and
7 deletion
+183
-7
src/main/java/com/kobylynskyi/graphql/codegen/mapper/ValueMapper.java
...a/com/kobylynskyi/graphql/codegen/mapper/ValueMapper.java
+3
-0
src/test/java/com/kobylynskyi/graphql/codegen/GraphQLCodegenAnnotationsTest.java
...ynskyi/graphql/codegen/GraphQLCodegenAnnotationsTest.java
+5
-0
src/test/java/com/kobylynskyi/graphql/codegen/GraphQLCodegenApisTest.java
...m/kobylynskyi/graphql/codegen/GraphQLCodegenApisTest.java
+3
-2
src/test/java/com/kobylynskyi/graphql/codegen/GraphQLCodegenModelsForRootTypesTest.java
...graphql/codegen/GraphQLCodegenModelsForRootTypesTest.java
+3
-2
src/test/java/com/kobylynskyi/graphql/codegen/GraphQLCodegenTest.java
...a/com/kobylynskyi/graphql/codegen/GraphQLCodegenTest.java
+3
-3
src/test/java/com/kobylynskyi/graphql/codegen/scala/GraphQLCodegenAnnotationsTest.java
.../graphql/codegen/scala/GraphQLCodegenAnnotationsTest.java
+5
-0
src/test/resources/expected-classes/User.java.txt
src/test/resources/expected-classes/User.java.txt
+68
-0
src/test/resources/expected-classes/annotation/User.java.txt
src/test/resources/expected-classes/annotation/User.java.txt
+69
-0
src/test/resources/expected-classes/scala/annotation/User.scala.txt
...esources/expected-classes/scala/annotation/User.scala.txt
+18
-0
src/test/resources/schemas/test.graphqls
src/test/resources/schemas/test.graphqls
+6
-0
未找到文件。
src/main/java/com/kobylynskyi/graphql/codegen/mapper/ValueMapper.java
浏览文件 @
9e19738d
...
...
@@ -129,6 +129,9 @@ public class ValueMapper {
if
(
graphQLType
instanceof
NonNullType
)
{
return
mapEnum
(
mappingContext
,
value
,
((
NonNullType
)
graphQLType
).
getType
());
}
if
(
graphQLType
==
null
)
{
return
value
.
getName
();
}
throw
new
IllegalArgumentException
(
"Unexpected Enum value for list type"
);
}
...
...
src/test/java/com/kobylynskyi/graphql/codegen/GraphQLCodegenAnnotationsTest.java
浏览文件 @
9e19738d
...
...
@@ -210,6 +210,8 @@ class GraphQLCodegenAnnotationsTest {
"n={{n?toString}})"
));
directiveAnnotationsMapping
.
put
(
"valid"
,
singletonList
(
"@javax.validation.Valid"
));
directiveAnnotationsMapping
.
put
(
"customResolver"
,
singletonList
(
"@com.example.CustomAnnotation"
));
directiveAnnotationsMapping
.
put
(
"relationship"
,
singletonList
(
"@com.example.Relationship(type = {{type}}, direction = {{direction}})"
));
mappingConfig
.
setDirectiveAnnotationsMapping
(
directiveAnnotationsMapping
);
new
JavaGraphQLCodegen
(
singletonList
(
"src/test/resources/schemas/test.graphqls"
),
...
...
@@ -225,6 +227,9 @@ class GraphQLCodegenAnnotationsTest {
assertSameTrimmedContent
(
new
File
(
"src/test/resources/expected-classes/annotation/EventProperty.java.txt"
),
getFileByName
(
files
,
"EventProperty.java"
));
assertSameTrimmedContent
(
new
File
(
"src/test/resources/expected-classes/annotation/User.java.txt"
),
getFileByName
(
files
,
"User.java"
));
}
}
src/test/java/com/kobylynskyi/graphql/codegen/GraphQLCodegenApisTest.java
浏览文件 @
9e19738d
...
...
@@ -138,7 +138,7 @@ class GraphQLCodegenApisTest {
File
[]
files
=
Objects
.
requireNonNull
(
outputJavaClassesDir
.
listFiles
());
assertEquals
(
Arrays
.
asList
(
"Event.java"
,
"EventProperty.java"
,
"EventPropertyResolver.java"
,
"EventStatus.java"
,
"MutationResolver.java"
,
"QueryResolver.java"
,
"SubscriptionResolver.java"
),
"MutationResolver.java"
,
"QueryResolver.java"
,
"SubscriptionResolver.java"
,
"User.java"
),
Arrays
.
stream
(
files
).
map
(
File:
:
getName
).
sorted
().
collect
(
toList
()));
}
...
...
@@ -155,7 +155,8 @@ class GraphQLCodegenApisTest {
assertEquals
(
Arrays
.
asList
(
"CreateEventMutationResolver.java"
,
"Event.java"
,
"EventByIdQueryResolver.java"
,
"EventProperty.java"
,
"EventPropertyResolver.java"
,
"EventStatus.java"
,
"EventsByCategoryAndStatusQueryResolver.java"
,
"EventsByIdsQueryResolver.java"
,
"EventsCreatedSubscriptionResolver.java"
,
"VersionQueryResolver.java"
),
"EventsByIdsQueryResolver.java"
,
"EventsCreatedSubscriptionResolver.java"
,
"User.java"
,
"VersionQueryResolver.java"
),
Arrays
.
stream
(
files
).
map
(
File:
:
getName
).
sorted
().
collect
(
toList
()));
}
...
...
src/test/java/com/kobylynskyi/graphql/codegen/GraphQLCodegenModelsForRootTypesTest.java
浏览文件 @
9e19738d
...
...
@@ -72,7 +72,7 @@ class GraphQLCodegenModelsForRootTypesTest {
File
[]
files
=
Objects
.
requireNonNull
(
outputJavaClassesDir
.
listFiles
());
List
<
String
>
generatedFileNames
=
Arrays
.
stream
(
files
).
map
(
File:
:
getName
).
sorted
().
collect
(
toList
());
assertEquals
(
Arrays
.
asList
(
"Event.java"
,
"EventProperty.java"
,
"EventStatus.java"
,
"Mutation.java"
,
"Query.java"
,
"Subscription.java"
),
"Mutation.java"
,
"Query.java"
,
"Subscription.java"
,
"User.java"
),
generatedFileNames
);
}
...
...
@@ -89,7 +89,8 @@ class GraphQLCodegenModelsForRootTypesTest {
"EventsByCategoryAndStatusQueryResolver.java"
,
"EventsByIdsQueryResolver.java"
,
"EventsCreatedSubscriptionResolver.java"
,
"Mutation.java"
,
"MutationResolver.java"
,
"MutationTypeResolver.java"
,
"Query.java"
,
"QueryResolver.java"
,
"QueryTypeResolver.java"
,
"Subscription.java"
,
"SubscriptionResolver.java"
,
"VersionQueryResolver.java"
),
generatedFileNames
);
"Subscription.java"
,
"SubscriptionResolver.java"
,
"User.java"
,
"VersionQueryResolver.java"
),
generatedFileNames
);
}
}
src/test/java/com/kobylynskyi/graphql/codegen/GraphQLCodegenTest.java
浏览文件 @
9e19738d
...
...
@@ -70,7 +70,7 @@ class GraphQLCodegenTest {
"CreateEventMutationResolver.java"
,
"Event.java"
,
"EventByIdQueryResolver.java"
,
"EventProperty.java"
,
"EventStatus.java"
,
"EventsByCategoryAndStatusQueryResolver.java"
,
"EventsByIdsQueryResolver.java"
,
"EventsCreatedSubscriptionResolver.java"
,
"MutationResolver.java"
,
"QueryResolver.java"
,
"SubscriptionResolver.java"
,
"SubscriptionResolver.java"
,
"User.java"
,
"VersionQueryResolver.java"
),
generatedFileNames
);
for
(
File
file
:
files
)
{
...
...
@@ -170,7 +170,7 @@ class GraphQLCodegenTest {
File
[]
modelFiles
=
Objects
.
requireNonNull
(
new
File
(
outputJavaClassesDir
,
"model"
).
listFiles
());
List
<
String
>
generatedModelFileNames
=
Arrays
.
stream
(
modelFiles
).
map
(
File:
:
getName
).
sorted
().
collect
(
toList
());
assertEquals
(
Arrays
.
asList
(
"Event.java"
,
"EventProperty.java"
,
"EventStatus.java"
),
generatedModelFileNames
);
assertEquals
(
Arrays
.
asList
(
"Event.java"
,
"EventProperty.java"
,
"EventStatus.java"
,
"User.java"
),
generatedModelFileNames
);
for
(
File
modelFile
:
modelFiles
)
{
assertThat
(
Utils
.
getFileContent
(
modelFile
.
getPath
()),
...
...
@@ -296,7 +296,7 @@ class GraphQLCodegenTest {
File
[]
files
=
Objects
.
requireNonNull
(
outputJavaClassesDir
.
listFiles
());
List
<
String
>
generatedFileNames
=
Arrays
.
stream
(
files
).
map
(
File:
:
getName
).
sorted
().
collect
(
toList
());
assertEquals
(
Arrays
.
asList
(
"Event.java"
,
"EventProperty.java"
,
"EventStatus.java"
),
generatedFileNames
);
assertEquals
(
Arrays
.
asList
(
"Event.java"
,
"EventProperty.java"
,
"EventStatus.java"
,
"User.java"
),
generatedFileNames
);
}
@Test
...
...
src/test/java/com/kobylynskyi/graphql/codegen/scala/GraphQLCodegenAnnotationsTest.java
浏览文件 @
9e19738d
...
...
@@ -171,6 +171,8 @@ class GraphQLCodegenAnnotationsTest {
"@com.example.CustomAnnotation(roles={{roles?toArray}}, "
+
"boo={{boo?toArray}}, float={{float?toArrayOfStrings}}, int={{int}}, "
+
"n={{n?toString}})"
));
directiveAnnotationsMapping
.
put
(
"relationship"
,
singletonList
(
"@com.example.Relationship(type = {{type}}, direction = {{direction}})"
));
mappingConfig
.
setDirectiveAnnotationsMapping
(
directiveAnnotationsMapping
);
new
ScalaGraphQLCodegen
(
singletonList
(
"src/test/resources/schemas/test.graphqls"
),
...
...
@@ -183,6 +185,9 @@ class GraphQLCodegenAnnotationsTest {
assertSameTrimmedContent
(
new
File
(
"src/test/resources/expected-classes/scala/annotation/MutationResolver.scala.txt"
),
getFileByName
(
files
,
"MutationResolver.scala"
));
assertSameTrimmedContent
(
new
File
(
"src/test/resources/expected-classes/scala/annotation/User.scala.txt"
),
getFileByName
(
files
,
"User.scala"
));
}
}
src/test/resources/expected-classes/User.java.txt
0 → 100644
浏览文件 @
9e19738d
package com.kobylynskyi.graphql.test1;
/**
* type with directive using enum value
*/
@javax.annotation.Generated(
value = "com.kobylynskyi.graphql.codegen.GraphQLCodegen",
date = "2020-12-31T23:59:59-0500"
)
public class User implements java.io.Serializable {
private String name;
private java.util.List<User> friends;
public User() {
}
public User(String name, java.util.List<User> friends) {
this.name = name;
this.friends = friends;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public java.util.List<User> getFriends() {
return friends;
}
public void setFriends(java.util.List<User> friends) {
this.friends = friends;
}
public static User.Builder builder() {
return new User.Builder();
}
public static class Builder {
private String name;
private java.util.List<User> friends;
public Builder() {
}
public Builder setName(String name) {
this.name = name;
return this;
}
public Builder setFriends(java.util.List<User> friends) {
this.friends = friends;
return this;
}
public User build() {
return new User(name, friends);
}
}
}
src/test/resources/expected-classes/annotation/User.java.txt
0 → 100644
浏览文件 @
9e19738d
package com.kobylynskyi.graphql.test1;
/**
* type with directive using enum value
*/
@javax.annotation.Generated(
value = "com.kobylynskyi.graphql.codegen.GraphQLCodegen",
date = "2020-12-31T23:59:59-0500"
)
public class User implements java.io.Serializable {
private String name;
@com.example.Relationship(type = "FRIEND_WITH", direction = OUT)
private java.util.List<User> friends;
public User() {
}
public User(String name, java.util.List<User> friends) {
this.name = name;
this.friends = friends;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public java.util.List<User> getFriends() {
return friends;
}
public void setFriends(java.util.List<User> friends) {
this.friends = friends;
}
public static User.Builder builder() {
return new User.Builder();
}
public static class Builder {
private String name;
private java.util.List<User> friends;
public Builder() {
}
public Builder setName(String name) {
this.name = name;
return this;
}
public Builder setFriends(java.util.List<User> friends) {
this.friends = friends;
return this;
}
public User build() {
return new User(name, friends);
}
}
}
src/test/resources/expected-classes/scala/annotation/User.scala.txt
0 → 100644
浏览文件 @
9e19738d
package com.kobylynskyi.graphql.test1
import scala.collection.JavaConverters._
/**
* type with directive using enum value
*/
@javax.annotation.Generated(
value = Array("com.kobylynskyi.graphql.codegen.GraphQLCodegen"),
date = "2020-12-31T23:59:59-0500"
)
case class User(
name: String,
@com.example.Relationship(type = "FRIEND_WITH", direction = OUT)
friends: scala.Seq[User]
) {
}
\ No newline at end of file
src/test/resources/schemas/test.graphqls
浏览文件 @
9e19738d
...
...
@@ -95,6 +95,12 @@ enum EventStatus {
LOGGED
}
# type with directive using enum value
type User {
name: String,
friends: [User] @relationship(type: "FRIEND_WITH", direction: OUT)
}
directive @auth (
roles: [String] = ["viewer"],
float: [Float] = [],
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录