forked from loafle/openapi-generator-original
Issue 758 root resource (#771)
* Unit-Test for JavaJAXRSSpecServerCodegen. * Path generation for primary resource fixed. * Unit test for toApiName. * Review-Feedback: blank line removed.
This commit is contained in:
+24
-6
@@ -18,7 +18,6 @@
|
||||
package org.openapitools.codegen.languages;
|
||||
|
||||
import io.swagger.v3.oas.models.Operation;
|
||||
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.openapitools.codegen.CliOption;
|
||||
import org.openapitools.codegen.CodegenConstants;
|
||||
@@ -42,7 +41,9 @@ public class JavaJAXRSSpecServerCodegen extends AbstractJavaJAXRSServerCodegen {
|
||||
private boolean interfaceOnly = false;
|
||||
private boolean returnResponse = false;
|
||||
private boolean generatePom = true;
|
||||
|
||||
|
||||
private String primaryResourceName;
|
||||
|
||||
public JavaJAXRSSpecServerCodegen() {
|
||||
super();
|
||||
invokerPackage = "org.openapitools.api";
|
||||
@@ -147,19 +148,26 @@ public class JavaJAXRSSpecServerCodegen extends AbstractJavaJAXRSServerCodegen {
|
||||
if (pos > 0) {
|
||||
basePath = basePath.substring(0, pos);
|
||||
}
|
||||
|
||||
|
||||
String operationKey = basePath;
|
||||
if (StringUtils.isEmpty(basePath)) {
|
||||
basePath = "default";
|
||||
basePath = tag;
|
||||
operationKey = "";
|
||||
primaryResourceName = tag;
|
||||
} else if (basePath.matches("\\{.*\\}")) {
|
||||
basePath = tag;
|
||||
operationKey = "";
|
||||
co.subresourceOperation = true;
|
||||
} else {
|
||||
if (co.path.startsWith("/" + basePath)) {
|
||||
co.path = co.path.substring(("/" + basePath).length());
|
||||
}
|
||||
co.subresourceOperation = !co.path.isEmpty();
|
||||
}
|
||||
List<CodegenOperation> opList = operations.get(basePath);
|
||||
List<CodegenOperation> opList = operations.get(operationKey);
|
||||
if (opList == null || opList.isEmpty()) {
|
||||
opList = new ArrayList<CodegenOperation>();
|
||||
operations.put(basePath, opList);
|
||||
operations.put(operationKey, opList);
|
||||
}
|
||||
opList.add(co);
|
||||
co.baseName = basePath;
|
||||
@@ -186,4 +194,14 @@ public class JavaJAXRSSpecServerCodegen extends AbstractJavaJAXRSServerCodegen {
|
||||
public String getHelp() {
|
||||
return "Generates a Java JAXRS Server according to JAXRS 2.0 specification.";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toApiName(final String name) {
|
||||
String computed = name;
|
||||
if (computed.length() == 0) {
|
||||
return primaryResourceName + "Api";
|
||||
}
|
||||
computed = sanitizeName(computed);
|
||||
return camelize(computed) + "Api";
|
||||
}
|
||||
}
|
||||
|
||||
+108
@@ -0,0 +1,108 @@
|
||||
package org.openapitools.codegen.java.jaxrs;
|
||||
|
||||
import io.swagger.v3.oas.models.Operation;
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
import org.openapitools.codegen.CodegenOperation;
|
||||
import org.openapitools.codegen.languages.JavaJAXRSSpecServerCodegen;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import static org.hamcrest.CoreMatchers.is;
|
||||
import static org.junit.Assert.assertThat;
|
||||
|
||||
/**
|
||||
* Unit-Test for {@link org.openapitools.codegen.languages.JavaJAXRSSpecServerCodegen}.
|
||||
*
|
||||
* @author attrobit
|
||||
*/
|
||||
public class JavaJAXRSSpecServerCodegenTest {
|
||||
|
||||
private JavaJAXRSSpecServerCodegen instance;
|
||||
|
||||
@Before
|
||||
public void before() {
|
||||
instance = new JavaJAXRSSpecServerCodegen();
|
||||
}
|
||||
|
||||
/**
|
||||
* Test
|
||||
* {@link JavaJAXRSSpecServerCodegen#addOperationToGroup(String, String, Operation, CodegenOperation, Map)} for Resource with path "/" and set tag.
|
||||
*/
|
||||
@Test
|
||||
public void testAddOperationToGroupForRootResource() {
|
||||
CodegenOperation codegenOperation = new CodegenOperation();
|
||||
codegenOperation.operationId = "findPrimaryresource";
|
||||
Operation operation = new Operation();
|
||||
Map<String, List<CodegenOperation>> operationList = new HashMap<>();
|
||||
|
||||
instance.addOperationToGroup("Primaryresource", "/", operation, codegenOperation, operationList);
|
||||
|
||||
assertThat(operationList.size(), is(1));
|
||||
assertThat(operationList.containsKey(""), is(true));
|
||||
assertThat(codegenOperation.baseName, is("Primaryresource"));
|
||||
}
|
||||
|
||||
/**
|
||||
* Test
|
||||
* {@link JavaJAXRSSpecServerCodegen#addOperationToGroup(String, String, Operation, CodegenOperation, Map)} for Resource with path param.
|
||||
*/
|
||||
@Test
|
||||
public void testAddOperationToGroupForRootResourcePathParam() {
|
||||
CodegenOperation codegenOperation = new CodegenOperation();
|
||||
codegenOperation.operationId = "getPrimaryresource";
|
||||
Operation operation = new Operation();
|
||||
Map<String, List<CodegenOperation>> operationList = new HashMap<>();
|
||||
|
||||
instance.addOperationToGroup("Primaryresource", "/{uuid}", operation, codegenOperation, operationList);
|
||||
|
||||
assertThat(operationList.size(), is(1));
|
||||
assertThat(operationList.containsKey(""), is(true));
|
||||
assertThat(codegenOperation.baseName, is("Primaryresource"));
|
||||
}
|
||||
|
||||
/**
|
||||
* Test
|
||||
* {@link JavaJAXRSSpecServerCodegen#addOperationToGroup(String, String,
|
||||
* Operation, CodegenOperation, Map)} for Resource with path "/subresource".
|
||||
*/
|
||||
@Test
|
||||
public void testAddOperationToGroupForSubresource() {
|
||||
CodegenOperation codegenOperation = new CodegenOperation();
|
||||
codegenOperation.path = "/subresource";
|
||||
Operation operation = new Operation();
|
||||
Map<String, List<CodegenOperation>> operationList = new HashMap<>();
|
||||
|
||||
instance.addOperationToGroup("Default", "/subresource", operation, codegenOperation, operationList);
|
||||
|
||||
assertThat(codegenOperation.baseName, is("subresource"));
|
||||
assertThat(operationList.size(), is(1));
|
||||
assertThat(operationList.containsKey("subresource"), is(true));
|
||||
}
|
||||
|
||||
/**
|
||||
* Test {@link JavaJAXRSSpecServerCodegen#toApiName(String)} with subresource.
|
||||
*/
|
||||
@Test
|
||||
public void testToApiNameForSubresource() {
|
||||
final String subresource = instance.toApiName("subresource");
|
||||
assertThat(subresource, is("SubresourceApi"));
|
||||
}
|
||||
|
||||
/**
|
||||
* Test {@link JavaJAXRSSpecServerCodegen#toApiName(String)} with primary resource.
|
||||
*/
|
||||
@Test
|
||||
public void testToApiNameForPrimaryResource() {
|
||||
CodegenOperation codegenOperation = new CodegenOperation();
|
||||
codegenOperation.operationId = "findPrimaryresource";
|
||||
Operation operation = new Operation();
|
||||
Map<String, List<CodegenOperation>> operationList = new HashMap<>();
|
||||
instance.addOperationToGroup("Primaryresource", "/", operation, codegenOperation, operationList);
|
||||
|
||||
final String subresource = instance.toApiName("");
|
||||
assertThat(subresource, is("PrimaryresourceApi"));
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user