Skip to content

Commit 63ac289

Browse files
committed
generate test case
1 parent d840c61 commit 63ac289

File tree

2 files changed

+47
-13
lines changed

2 files changed

+47
-13
lines changed

generator/src/main/java/line/bot/generator/LineBotSdkNodejsGeneratorGenerator.java

Lines changed: 46 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
import io.swagger.v3.oas.models.Operation;
66
import io.swagger.v3.oas.models.media.Schema;
77
import io.swagger.v3.oas.models.responses.ApiResponse;
8+
import org.openapitools.codegen.CliOption;
89
import org.openapitools.codegen.CodegenConfig;
910
import org.openapitools.codegen.CodegenDiscriminator;
1011
import org.openapitools.codegen.CodegenModel;
@@ -16,6 +17,7 @@
1617
import org.openapitools.codegen.model.OperationsMap;
1718
import org.openapitools.codegen.utils.ModelUtils;
1819

20+
import java.io.File;
1921
import java.util.HashMap;
2022
import java.util.List;
2123
import java.util.Map;
@@ -26,6 +28,10 @@
2628
// https://github.com/OpenAPITools/openapi-generator/blob/master/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractTypeScriptClientCodegen.java
2729
// https://github.com/OpenAPITools/openapi-generator/blob/master/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/TypeScriptNodeClientCodegen.java
2830
public class LineBotSdkNodejsGeneratorGenerator extends TypeScriptNodeClientCodegen implements CodegenConfig {
31+
protected String outputTestFolder = "";
32+
public static final String TEST_OUTPUT = "testOutput";
33+
public static final String DEFAULT_TEST_FOLDER = "${project.build.directory}/generated-test-sources/openapi";
34+
protected String testFolder = "tests";
2935

3036
/**
3137
* Configures the type of generator.
@@ -87,6 +93,33 @@ public LineBotSdkNodejsGeneratorGenerator() {
8793
embeddedTemplateDir = templateDir = "line-bot-sdk-nodejs-generator";
8894
typeMapping.put("file", "Blob");
8995
languageSpecificPrimitives.add("Blob");
96+
apiTestTemplateFiles.put("api_test.mustache", ".spec.ts");
97+
cliOptions.add(CliOption.newString(TEST_OUTPUT, "Set output folder for models and APIs tests").defaultValue(DEFAULT_TEST_FOLDER));
98+
}
99+
100+
@Override
101+
public void processOpts() {
102+
super.processOpts();
103+
if (additionalProperties.containsKey(TEST_OUTPUT)) {
104+
setOutputTestFolder(additionalProperties.get(TEST_OUTPUT).toString());
105+
}
106+
}
107+
108+
@Override
109+
public String apiTestFileFolder() {
110+
return (outputTestFolder + File.separator + testFolder + File.separator + apiPackage().replace('.', File.separatorChar)).replace('/', File.separatorChar);
111+
}
112+
113+
@Override
114+
public void setOutputDir(String dir) {
115+
super.setOutputDir(dir);
116+
if (this.outputTestFolder.isEmpty()) {
117+
setOutputTestFolder(dir);
118+
}
119+
}
120+
121+
public void setOutputTestFolder(String outputTestFolder) {
122+
this.outputTestFolder = outputTestFolder;
90123
}
91124

92125
@Override
@@ -100,7 +133,7 @@ public Map<String, ModelsMap> postProcessAllModels(Map<String, ModelsMap> objs)
100133
if (cm.getParentModel() != null) {
101134
CodegenDiscriminator discriminator = cm.getParentModel().getDiscriminator();
102135
Optional<String> mappingNameOptional = discriminator.getMappedModels().stream().filter(
103-
it -> it.getModelName().equals(cm.name)
136+
it -> it.getModelName().equals(cm.name)
104137
).map(CodegenDiscriminator.MappedModel::getMappingName).findFirst();
105138
mappingNameOptional.ifPresent(mappingName -> {
106139
Map<String, Object> selector = new HashMap<>();
@@ -131,18 +164,18 @@ protected void handleMethodResponse(Operation operation,
131164
@Override
132165
protected ImmutableMap.Builder<String, Mustache.Lambda> addMustacheLambdas() {
133166
return super.addMustacheLambdas()
134-
.put("endpoint", (fragment, writer) -> {
135-
String text = fragment.execute();
136-
writer.write(this.getEndpointFromClassName(text));
137-
})
138-
.put("lower", (fragment, writer) -> {
139-
String text = fragment.execute();
140-
writer.write(text.toLowerCase());
141-
})
142-
.put("pathReplace", ((fragment, writer) -> {
143-
String text = fragment.execute();
144-
writer.write(pathReplacer(text));
145-
}));
167+
.put("endpoint", (fragment, writer) -> {
168+
String text = fragment.execute();
169+
writer.write(this.getEndpointFromClassName(text));
170+
})
171+
.put("lower", (fragment, writer) -> {
172+
String text = fragment.execute();
173+
writer.write(text.toLowerCase());
174+
})
175+
.put("pathReplace", ((fragment, writer) -> {
176+
String text = fragment.execute();
177+
writer.write(pathReplacer(text));
178+
}));
146179
}
147180

148181
private String getEndpointFromClassName(String className) {
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
// write test case here...

0 commit comments

Comments
 (0)