[java] enhance unit tests for JavaJerseyServerCodegen (#11643)

This commit is contained in:
sullis
2022-02-17 19:24:19 -08:00
committed by GitHub
parent 1f6b3eb604
commit 9517a9525b

View File

@@ -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