Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
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
2 changes: 1 addition & 1 deletion src/main/resources/templates/kotlin-lang/operations.ftl
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ interface ${className}<#if implements?has_content> : <#list implements as interf
<#if operation.throwsException>
@Throws(Exception::class)
</#if>
fun ${operation.name}(<#list operation.parameters as param>${param.name}: ${param.type}<#if param_has_next>, </#if></#list>): ${operation.type}
fun ${operation.name}(<#list operation.parameters as param><#list param.annotations as paramAnnotation>@${paramAnnotation}<#if param.annotations?has_content> </#if></#list>${param.name}: ${param.type}<#if param_has_next>, </#if></#list>): ${operation.type}

</#list>
}
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@

import static com.kobylynskyi.graphql.codegen.TestUtils.assertSameTrimmedContent;
import static com.kobylynskyi.graphql.codegen.TestUtils.getFileByName;
import static java.util.Collections.singleton;
import static java.util.Collections.singletonList;
import static org.hamcrest.MatcherAssert.assertThat;

Expand Down Expand Up @@ -188,6 +189,26 @@ void generate_CustomFieldsResolvers() throws Exception {
getFileByName(files, "AcceptTopicSuggestionPayloadResolver.kt"));
}

@Test
void generate_CustomFieldsResolversWithAnnotations() throws Exception {
mappingConfig.setModelNamePrefix("Github");
mappingConfig.setModelNameSuffix("TO");
mappingConfig.setApiNameSuffix("WithAnnotation");
mappingConfig.setResolverArgumentAnnotations(singleton("some.Annotation"));
mappingConfig.setGenerateDataFetchingEnvironmentArgumentInApis(true);
mappingConfig.setFieldsWithResolvers(Collections.singleton("AcceptTopicSuggestionPayload.topic"));

new KotlinGraphQLCodegen(singletonList("src/test/resources/schemas/github.graphqls"),
outputBuildDir, mappingConfig, TestUtils.getStaticGeneratedInfo()).generate();

File[] files = Objects.requireNonNull(outputktClassesDir.listFiles());

assertSameTrimmedContent(new File(
"src/test/resources/expected-classes/kt/field-resolver/" +
"AcceptTopicSuggestionMutationWithAnnotation.kt.txt"),
getFileByName(files, "AcceptTopicSuggestionMutationWithAnnotation.kt"));
}

@Test
void generate_RequestWithDefaultValue() throws Exception {
mappingConfig.setGenerateBuilder(true);
Expand All @@ -200,4 +221,4 @@ void generate_RequestWithDefaultValue() throws Exception {
getFileByName(files, "FriendsQueryRequest.kt"));
}

}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
package com.github.graphql


@javax.annotation.Generated(
value = ["com.kobylynskyi.graphql.codegen.GraphQLCodegen"],
date = "2020-12-31T23:59:59-0500"
)
interface AcceptTopicSuggestionMutationWithAnnotation {

@Throws(Exception::class)
fun acceptTopicSuggestion(@some.Annotation input: GithubAcceptTopicSuggestionInputTO, env: graphql.schema.DataFetchingEnvironment): GithubAcceptTopicSuggestionPayloadTO?

}