From 29ee594b8cadd14c2d5cdc078113b5639653f1fb Mon Sep 17 00:00:00 2001 From: Julien Lengrand-Lambert Date: Wed, 23 Nov 2022 11:24:01 +0100 Subject: [PATCH] Dummy client generated --- .../jetbrains-http-client-petstore-new.yaml | 6 +++ .../JetbrainsHttpClientClientCodegen.java | 46 +++++++++++++++++++ .../org.openapitools.codegen.CodegenConfig | 2 + .../jetbrains-http-client/README.mustache | 0 .../jetbrains-http-client/api.mustache | 0 .../jetbrains-http-client/model.mustache | 0 ...rainsHttpClientClientCodegenModelTest.java | 29 ++++++++++++ ...insHttpClientClientCodegenOptionsTest.java | 30 ++++++++++++ .../JetbrainsHttpClientClientCodegenTest.java | 19 ++++++++ ...ttpClientClientCodegenOptionsProvider.java | 31 +++++++++++++ 10 files changed, 163 insertions(+) create mode 100644 bin/configs/jetbrains-http-client-petstore-new.yaml create mode 100644 modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JetbrainsHttpClientClientCodegen.java create mode 100644 modules/openapi-generator/src/main/resources/jetbrains-http-client/README.mustache create mode 100644 modules/openapi-generator/src/main/resources/jetbrains-http-client/api.mustache create mode 100644 modules/openapi-generator/src/main/resources/jetbrains-http-client/model.mustache create mode 100644 modules/openapi-generator/src/test/java/org/openapitools/codegen/jetbrains/http/client/JetbrainsHttpClientClientCodegenModelTest.java create mode 100644 modules/openapi-generator/src/test/java/org/openapitools/codegen/jetbrains/http/client/JetbrainsHttpClientClientCodegenOptionsTest.java create mode 100644 modules/openapi-generator/src/test/java/org/openapitools/codegen/jetbrains/http/client/JetbrainsHttpClientClientCodegenTest.java create mode 100644 modules/openapi-generator/src/test/java/org/openapitools/codegen/options/JetbrainsHttpClientClientCodegenOptionsProvider.java diff --git a/bin/configs/jetbrains-http-client-petstore-new.yaml b/bin/configs/jetbrains-http-client-petstore-new.yaml new file mode 100644 index 0000000000..72c5012b97 --- /dev/null +++ b/bin/configs/jetbrains-http-client-petstore-new.yaml @@ -0,0 +1,6 @@ +generatorName: jetbrains-http-client +outputDir: samples/client/petstore/jetbrains/http/client +inputSpec: modules/openapi-generator/src/test/resources/3_0/petstore.yaml +templateDir: modules/openapi-generator/src/main/resources/jetbrains-http-client +additionalProperties: + hideGenerationTimestamp: "true" diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JetbrainsHttpClientClientCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JetbrainsHttpClientClientCodegen.java new file mode 100644 index 0000000000..217688440f --- /dev/null +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JetbrainsHttpClientClientCodegen.java @@ -0,0 +1,46 @@ +package org.openapitools.codegen.languages; + +import org.openapitools.codegen.*; +import io.swagger.models.properties.ArrayProperty; +import io.swagger.models.properties.MapProperty; +import io.swagger.models.properties.Property; +import io.swagger.models.parameters.Parameter; + +import java.io.File; +import java.util.*; + +import org.apache.commons.lang3.StringUtils; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +public class JetbrainsHttpClientClientCodegen extends DefaultCodegen implements CodegenConfig { + public static final String PROJECT_NAME = "projectName"; + + static final Logger LOGGER = LoggerFactory.getLogger(JetbrainsHttpClientClientCodegen.class); + + public CodegenType getTag() { + return CodegenType.CLIENT; + } + + public String getName() { + return "jetbrains-http-client"; + } + + public String getHelp() { + return "Generates a jetbrains-http-client client."; + } + + public JetbrainsHttpClientClientCodegen() { + super(); + + outputFolder = "generated-code" + File.separator + "jetbrains-http-client"; + modelTemplateFiles.put("model.mustache", ".zz"); + apiTemplateFiles.put("api.mustache", ".zz"); + embeddedTemplateDir = templateDir = "jetbrains-http-client"; + apiPackage = "Apis"; + modelPackage = "Models"; + supportingFiles.add(new SupportingFile("README.mustache", "", "README.md")); + // TODO: Fill this out. + } +} diff --git a/modules/openapi-generator/src/main/resources/META-INF/services/org.openapitools.codegen.CodegenConfig b/modules/openapi-generator/src/main/resources/META-INF/services/org.openapitools.codegen.CodegenConfig index 92dcb24bbc..95a5591b1f 100644 --- a/modules/openapi-generator/src/main/resources/META-INF/services/org.openapitools.codegen.CodegenConfig +++ b/modules/openapi-generator/src/main/resources/META-INF/services/org.openapitools.codegen.CodegenConfig @@ -137,3 +137,5 @@ org.openapitools.codegen.languages.TypeScriptNodeClientCodegen org.openapitools.codegen.languages.TypeScriptReduxQueryClientCodegen org.openapitools.codegen.languages.TypeScriptRxjsClientCodegen org.openapitools.codegen.languages.WsdlSchemaCodegen + +org.openapitools.codegen.languages.JetbrainsHttpClientClientCodegen diff --git a/modules/openapi-generator/src/main/resources/jetbrains-http-client/README.mustache b/modules/openapi-generator/src/main/resources/jetbrains-http-client/README.mustache new file mode 100644 index 0000000000..e69de29bb2 diff --git a/modules/openapi-generator/src/main/resources/jetbrains-http-client/api.mustache b/modules/openapi-generator/src/main/resources/jetbrains-http-client/api.mustache new file mode 100644 index 0000000000..e69de29bb2 diff --git a/modules/openapi-generator/src/main/resources/jetbrains-http-client/model.mustache b/modules/openapi-generator/src/main/resources/jetbrains-http-client/model.mustache new file mode 100644 index 0000000000..e69de29bb2 diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/jetbrains/http/client/JetbrainsHttpClientClientCodegenModelTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/jetbrains/http/client/JetbrainsHttpClientClientCodegenModelTest.java new file mode 100644 index 0000000000..25803c65ee --- /dev/null +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/jetbrains/http/client/JetbrainsHttpClientClientCodegenModelTest.java @@ -0,0 +1,29 @@ +package org.openapitools.codegen.jetbrains.http.client; + +import org.openapitools.codegen.*; +import org.openapitools.codegen.languages.JetbrainsHttpClientClientCodegen; +import io.swagger.models.*; +import io.swagger.models.properties.*; + +import org.testng.Assert; +import org.testng.annotations.Test; + +@SuppressWarnings("static-method") +public class JetbrainsHttpClientClientCodegenModelTest { + + @Test(description = "convert a simple java model") + public void simpleModelTest() { + final Model model = new ModelImpl() + .description("a sample model") + .property("id", new LongProperty()) + .property("name", new StringProperty()) + .required("id") + .required("name"); + final DefaultCodegen codegen = new JetbrainsHttpClientClientCodegen(); + + // TODO: Complete this test. + Assert.fail("Not implemented."); + } + +} + diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/jetbrains/http/client/JetbrainsHttpClientClientCodegenOptionsTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/jetbrains/http/client/JetbrainsHttpClientClientCodegenOptionsTest.java new file mode 100644 index 0000000000..482e0c630f --- /dev/null +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/jetbrains/http/client/JetbrainsHttpClientClientCodegenOptionsTest.java @@ -0,0 +1,30 @@ +package org.openapitools.codegen.jetbrains.http.client; + +import org.openapitools.codegen.AbstractOptionsTest; +import org.openapitools.codegen.CodegenConfig; +import org.openapitools.codegen.languages.JetbrainsHttpClientClientCodegen; +import org.openapitools.codegen.options.JetbrainsHttpClientClientCodegenOptionsProvider; + +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.verify; + +public class JetbrainsHttpClientClientCodegenOptionsTest extends AbstractOptionsTest { + private JetbrainsHttpClientClientCodegen codegen = mock(JetbrainsHttpClientClientCodegen.class, mockSettings); + + public JetbrainsHttpClientClientCodegenOptionsTest() { + super(new JetbrainsHttpClientClientCodegenOptionsProvider()); + } + + @Override + protected CodegenConfig getCodegenConfig() { + return codegen; + } + + @SuppressWarnings("unused") + @Override + protected void verifyOptions() { + // TODO: Complete options using Mockito + // verify(codegen).someMethod(arguments) + } +} + diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/jetbrains/http/client/JetbrainsHttpClientClientCodegenTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/jetbrains/http/client/JetbrainsHttpClientClientCodegenTest.java new file mode 100644 index 0000000000..db645611b3 --- /dev/null +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/jetbrains/http/client/JetbrainsHttpClientClientCodegenTest.java @@ -0,0 +1,19 @@ +package org.openapitools.codegen.jetbrains.http.client; + +import org.openapitools.codegen.*; +import org.openapitools.codegen.languages.JetbrainsHttpClientClientCodegen; +import io.swagger.models.*; +import io.swagger.parser.SwaggerParser; +import org.testng.Assert; +import org.testng.annotations.Test; + +public class JetbrainsHttpClientClientCodegenTest { + + JetbrainsHttpClientClientCodegen codegen = new JetbrainsHttpClientClientCodegen(); + + @Test + public void shouldSucceed() throws Exception { + // TODO: Complete this test. + Assert.fail("Not implemented."); + } +} diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/options/JetbrainsHttpClientClientCodegenOptionsProvider.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/options/JetbrainsHttpClientClientCodegenOptionsProvider.java new file mode 100644 index 0000000000..bcc397589c --- /dev/null +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/options/JetbrainsHttpClientClientCodegenOptionsProvider.java @@ -0,0 +1,31 @@ +package org.openapitools.codegen.options; + +import org.openapitools.codegen.CodegenConstants; +import org.openapitools.codegen.languages.JetbrainsHttpClientClientCodegen; + +import com.google.common.collect.ImmutableMap; + +import java.util.Map; + +public class JetbrainsHttpClientClientCodegenOptionsProvider implements OptionsProvider { + public static final String PROJECT_NAME_VALUE = "OpenAPI"; + + @Override + public String getLanguage() { + return "jetbrains-http-client"; + } + + @Override + public Map createOptions() { + ImmutableMap.Builder builder = new ImmutableMap.Builder(); + return builder + .put(JetbrainsHttpClientClientCodegen.PROJECT_NAME, PROJECT_NAME_VALUE) + .build(); + } + + @Override + public boolean isServer() { + return false; + } +} +