forked from loafle/openapi-generator-original
[java] enhance unit tests for JavaJerseyServerCodegen (#11643)
This commit is contained in:
@@ -1,5 +1,7 @@
|
||||
package org.openapitools.codegen.java.jaxrs;
|
||||
|
||||
import com.google.common.collect.ImmutableList;
|
||||
|
||||
import io.swagger.parser.OpenAPIParser;
|
||||
import io.swagger.v3.oas.models.OpenAPI;
|
||||
import io.swagger.v3.oas.models.servers.Server;
|
||||
@@ -7,12 +9,16 @@ import io.swagger.v3.parser.core.models.ParseOptions;
|
||||
|
||||
import org.openapitools.codegen.ClientOptInput;
|
||||
import org.openapitools.codegen.CodegenConstants;
|
||||
import org.openapitools.codegen.CodegenType;
|
||||
import org.openapitools.codegen.DefaultCodegen;
|
||||
import org.openapitools.codegen.TestUtils;
|
||||
import org.openapitools.codegen.languages.JavaJerseyServerCodegen;
|
||||
import org.openapitools.codegen.languages.features.CXFServerFeatures;
|
||||
import org.openapitools.codegen.DefaultGenerator;
|
||||
import org.openapitools.codegen.templating.MustacheEngineAdapter;
|
||||
import org.testng.Assert;
|
||||
import org.testng.annotations.BeforeMethod;
|
||||
import org.testng.annotations.DataProvider;
|
||||
import org.testng.annotations.Test;
|
||||
|
||||
import static org.openapitools.codegen.TestUtils.assertFileContains;
|
||||
@@ -20,6 +26,7 @@ import static org.openapitools.codegen.TestUtils.assertFileContains;
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.nio.file.Files;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.stream.Collectors;
|
||||
@@ -33,6 +40,12 @@ public class JavaJerseyServerCodegenTest extends JavaJaxrsBaseTest {
|
||||
|
||||
@Test
|
||||
public void testInitialConfigValues() throws Exception {
|
||||
Assert.assertEquals(codegen.getTag(), CodegenType.SERVER);
|
||||
Assert.assertEquals(codegen.getName(), "jaxrs-jersey");
|
||||
Assert.assertEquals(codegen.getTemplatingEngine().getClass(), MustacheEngineAdapter.class);
|
||||
Assert.assertEquals(codegen.getDateLibrary(), "legacy");
|
||||
Assert.assertNull(codegen.getInputSpec());
|
||||
|
||||
codegen.processOpts();
|
||||
|
||||
OpenAPI openAPI = new OpenAPI();
|
||||
@@ -56,6 +69,7 @@ public class JavaJerseyServerCodegenTest extends JavaJaxrsBaseTest {
|
||||
codegen.setModelPackage("xx.yyyyyyyy.model");
|
||||
codegen.setApiPackage("xx.yyyyyyyy.api");
|
||||
codegen.setInvokerPackage("xx.yyyyyyyy.invoker");
|
||||
codegen.setDateLibrary("java8");
|
||||
codegen.processOpts();
|
||||
|
||||
Assert.assertEquals(codegen.additionalProperties().get(CodegenConstants.HIDE_GENERATION_TIMESTAMP), Boolean.TRUE);
|
||||
@@ -66,6 +80,7 @@ public class JavaJerseyServerCodegenTest extends JavaJaxrsBaseTest {
|
||||
Assert.assertEquals(codegen.additionalProperties().get(CodegenConstants.API_PACKAGE), "xx.yyyyyyyy.api");
|
||||
Assert.assertEquals(codegen.getInvokerPackage(), "xx.yyyyyyyy.invoker");
|
||||
Assert.assertEquals(codegen.additionalProperties().get(CodegenConstants.INVOKER_PACKAGE), "xx.yyyyyyyy.invoker");
|
||||
Assert.assertEquals(codegen.getDateLibrary(), "java8");
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -93,7 +108,7 @@ public class JavaJerseyServerCodegenTest extends JavaJaxrsBaseTest {
|
||||
}
|
||||
|
||||
// Helper function, intended to reduce boilerplate @ copied from ../spring/SpringCodegenTest.java
|
||||
private Map<String, File> generateFiles(DefaultCodegen codegen, String filePath) throws IOException {
|
||||
static private Map<String, File> generateFiles(DefaultCodegen codegen, String filePath) throws IOException {
|
||||
final File output = Files.createTempDirectory("test").toFile().getCanonicalFile();
|
||||
output.deleteOnExit();
|
||||
final String outputPath = output.getAbsolutePath().replace('\\', '/');
|
||||
@@ -107,14 +122,31 @@ public class JavaJerseyServerCodegenTest extends JavaJaxrsBaseTest {
|
||||
input.config(codegen);
|
||||
|
||||
final DefaultGenerator generator = new DefaultGenerator();
|
||||
List<File> files = generator.opts(input).generate();
|
||||
final List<File> files = generator.opts(input).generate();
|
||||
|
||||
Assert.assertTrue(files.size() > 0);
|
||||
TestUtils.validateJavaSourceFiles(files);
|
||||
|
||||
return files.stream().collect(Collectors.toMap(e -> e.getName().replace(outputPath, ""), i -> i));
|
||||
}
|
||||
|
||||
@DataProvider(name = "codegenParameterMatrix")
|
||||
public Object[][] codegenParameterMatrix() {
|
||||
final List<Object[]> rows = new ArrayList<Object[]>();
|
||||
for (final String jerseyLibrary: ImmutableList.of("jersey1", "jersey2")) {
|
||||
for (final String dateLibrary: ImmutableList.of("joda", "java8")) {
|
||||
rows.add(new Object[] { jerseyLibrary, dateLibrary });
|
||||
}
|
||||
}
|
||||
return rows.toArray(new Object[0][0]);
|
||||
}
|
||||
|
||||
// almost same test as issue #3139 on Spring
|
||||
@Test
|
||||
public void testMultipartJerseyServer() throws Exception {
|
||||
@Test(dataProvider = "codegenParameterMatrix")
|
||||
public void testMultipartJerseyServer(final String jerseyLibrary, final String dateLibrary) throws Exception {
|
||||
codegen.setLibrary(jerseyLibrary);
|
||||
codegen.setDateLibrary(dateLibrary);
|
||||
|
||||
final Map<String, File> files = generateFiles(codegen, "src/test/resources/3_0/form-multipart-binary-array.yaml");
|
||||
|
||||
// Check files for Single, Mixed
|
||||
|
||||
Reference in New Issue
Block a user