add unit test
Signed-off-by: kakulisen <18813972746@163.com>
diff --git a/oas-generator/oas-generator-core/src/main/java/org/apache/servicecomb/toolkit/generator/util/LocalVariableVisitor.java b/oas-generator/oas-generator-core/src/main/java/org/apache/servicecomb/toolkit/generator/util/LocalVariableVisitor.java
index b7f19c1..4141d77 100644
--- a/oas-generator/oas-generator-core/src/main/java/org/apache/servicecomb/toolkit/generator/util/LocalVariableVisitor.java
+++ b/oas-generator/oas-generator-core/src/main/java/org/apache/servicecomb/toolkit/generator/util/LocalVariableVisitor.java
@@ -23,8 +23,6 @@
public class LocalVariableVisitor extends MethodVisitor {
- private boolean isStatic;
-
private String[] parameterNames;
private final int[] lvtSlotIndex;
@@ -33,7 +31,6 @@
public LocalVariableVisitor(int api, String desc, boolean isStatic, String[] parameterNames) {
super(api);
- this.isStatic = isStatic;
this.parameterNames = parameterNames;
this.args = Type.getArgumentTypes(desc);
this.lvtSlotIndex = computeLvtSlotIndices(isStatic, this.args);
diff --git a/oas-generator/oas-generator-core/src/test/java/org/apache/servicecomb/toolkit/generator/AnnotationProcessorTest.java b/oas-generator/oas-generator-core/src/test/java/org/apache/servicecomb/toolkit/generator/AnnotationProcessorTest.java
index a46854d..1f51291 100644
--- a/oas-generator/oas-generator-core/src/test/java/org/apache/servicecomb/toolkit/generator/AnnotationProcessorTest.java
+++ b/oas-generator/oas-generator-core/src/test/java/org/apache/servicecomb/toolkit/generator/AnnotationProcessorTest.java
@@ -21,8 +21,10 @@
import org.apache.servicecomb.toolkit.generator.annotation.ApiResponseMethodAnnotationProcessor;
import org.apache.servicecomb.toolkit.generator.annotation.ApiResponsesMethodAnnotationProcessor;
+import org.apache.servicecomb.toolkit.generator.annotation.OpenApiDefinitionClassAnnotationProcessor;
import org.apache.servicecomb.toolkit.generator.annotation.OperationMethodAnnotationProcessor;
import org.apache.servicecomb.toolkit.generator.annotation.ParameterAnnotationProcessor;
+import org.apache.servicecomb.toolkit.generator.annotation.RequestBodyParamAnnotationProcessor;
import org.apache.servicecomb.toolkit.generator.context.OasContext;
import org.apache.servicecomb.toolkit.generator.context.OperationContext;
import org.apache.servicecomb.toolkit.generator.context.ParameterContext;
@@ -112,11 +114,9 @@
@Test
public void processOperationAnnotation() throws NoSuchMethodException {
- OasContext oasContext = new OasContext(null);
- OperationContext context = new OperationContext(null, oasContext);
+ OasContext oasContext = null;
+
OperationMethodAnnotationProcessor operationMethodAnnotationProcessor = new OperationMethodAnnotationProcessor();
-// Operation operation = Mockito.mock(Operation.class);
-// operationMethodAnnotationProcessor.process(operation, context);
Method helloMethod = OpenapiDef.class.getDeclaredMethod("hello", String.class, Object.class);
Operation operation = helloMethod.getAnnotation(Operation.class);
@@ -131,10 +131,51 @@
return true;
}
});
- context = new OperationContext(helloMethod, oasContext);
+ OperationContext context = new OperationContext(helloMethod, oasContext);
operationMethodAnnotationProcessor.process(operation, context);
+ Assert.assertEquals("hello-operation", context.getOperationId());
}
+ @Test
+ public void processOpenApiDefinitionClassAnnotation() throws NoSuchMethodException {
+
+ OasContext oasContext = null;
+
+ OpenApiDefinitionClassAnnotationProcessor openApiDefinitionClassAnnotationProcessor = new OpenApiDefinitionClassAnnotationProcessor();
+
+ OpenAPIDefinition openAPIDefinition = OpenapiDef.class.getAnnotation(OpenAPIDefinition.class);
+ oasContext = new OasContext(new AbstractAnnotationParser() {
+ @Override
+ public int getOrder() {
+ return 0;
+ }
+
+ @Override
+ public boolean canProcess(Class<?> cls) {
+ return true;
+ }
+ });
+ openApiDefinitionClassAnnotationProcessor.process(openAPIDefinition, oasContext);
+// Assert.assertEquals("hello-operation", context.getOperationId());
+ }
+
+ @Test
+ public void processRequestBodyAnnotation() throws NoSuchMethodException {
+
+ OasContext oasContext = new OasContext(null);
+ RequestBodyParamAnnotationProcessor operationMethodAnnotationProcessor = new RequestBodyParamAnnotationProcessor();
+
+ RequestBody requestBody = Mockito.mock(RequestBody.class);
+ Mockito.when(requestBody.content()).thenReturn(new Content[] {Mockito.mock(Content.class)});
+ Mockito.when(requestBody.ref()).thenReturn("#components/string");
+
+ Method helloMethod = OpenapiDef.class.getDeclaredMethod("hello", String.class, Object.class);
+ OperationContext operationContext = new OperationContext(helloMethod, oasContext);
+ ParameterContext parameterContext = new ParameterContext(operationContext, null);
+ operationMethodAnnotationProcessor.process(requestBody, parameterContext);
+
+ Assert.assertTrue(parameterContext.isRequestBody());
+ }
@Test
public void processParameterAnnotation() throws NoSuchMethodException, IllegalAccessException,
diff --git a/oas-generator/oas-generator-core/src/test/java/org/apache/servicecomb/toolkit/generator/ContextTest.java b/oas-generator/oas-generator-core/src/test/java/org/apache/servicecomb/toolkit/generator/ContextTest.java
index efce736..d4e726b 100644
--- a/oas-generator/oas-generator-core/src/test/java/org/apache/servicecomb/toolkit/generator/ContextTest.java
+++ b/oas-generator/oas-generator-core/src/test/java/org/apache/servicecomb/toolkit/generator/ContextTest.java
@@ -34,7 +34,10 @@
import org.apache.servicecomb.toolkit.generator.context.ParameterContext.InType;
import org.junit.Test;
+import io.swagger.v3.oas.annotations.enums.ParameterStyle;
import io.swagger.v3.oas.models.PathItem.HttpMethod;
+import io.swagger.v3.oas.models.parameters.RequestBody;
+import io.swagger.v3.oas.models.responses.ApiResponses;
public class ContextTest {
@@ -53,6 +56,8 @@
context.setDefaultValue("default");
context.setIn(InType.QUERY);
context.setName("param1");
+ context.setDescription("desc");
+ context.setStyle(ParameterStyle.SIMPLE);
context.addExtension("extension-key", "extension-value");
assertFalse(context.isRequestBody());
@@ -72,7 +77,10 @@
assertEquals(parameter, context.getParameter());
assertNotNull(context.getSchema());
assertEquals("default", context.getDefaultValue());
+ assertEquals("desc", context.getDescription());
+ assertEquals(ParameterStyle.SIMPLE, context.getStyle());
assertFalse(context.isRequired());
+ assertNull(context.getDeprecated());
context.setIn(InType.COOKIE);
assertFalse(context.isRequestBody());
@@ -93,6 +101,12 @@
context.setIn(InType.BODY);
context.toParameter();
assertTrue(context.isRequestBody());
+
+ context.addConsume(MediaTypes.APPLICATION_JSON);
+ assertEquals(MediaTypes.APPLICATION_JSON, context.getConsumers().get(0));
+
+ context.setRequestBody(new RequestBody());
+ assertNotNull(context.getRequestBody());
}
@Test
@@ -103,10 +117,26 @@
Parameter parameter = method.getParameters()[0];
ParameterContext context = new ParameterContext(operationContext, parameter);
context.setIn(InType.FORM);
-
+ oasContext.toOpenAPI();
operationContext.setHttpMethod(HttpMethod.GET.name());
+ operationContext.setTags(null);
+ operationContext.setApiResponses(new ApiResponses());
+ operationContext.setDescription("desc");
+ operationContext.setConsumers(new String[] {MediaTypes.APPLICATION_JSON});
+ operationContext.addExtension("x-extension", "value");
operationContext.toOperation();
+ oasContext.toOpenAPI();
+ oasContext.addExtension("x-extension", "value");
+ assertEquals("value", oasContext.getExtensions().get("x-extension"));
+ assertEquals("value", operationContext.getExtensions().get("x-extension"));
assertEquals(HttpMethod.GET.name(), operationContext.getHttpMethod());
+ assertNotNull(operationContext.getOperation());
+ assertNotNull(operationContext.getApiResponses());
+ assertEquals(oasContext, operationContext.getOpenApiContext());
+ assertNull(operationContext.getSummary());
+ assertNull(operationContext.getTags());
+ assertEquals(MediaTypes.APPLICATION_JSON, operationContext.getConsumers()[0]);
+ assertEquals("desc", operationContext.getDescription());
}
}
diff --git a/oas-generator/oas-generator-servicecomb/src/main/java/org/apache/servicecomb/toolkit/generator/parser/ServicecombPojoParser.java b/oas-generator/oas-generator-servicecomb/src/main/java/org/apache/servicecomb/toolkit/generator/parser/ServicecombPojoParser.java
index bf26c42..ff467fb 100644
--- a/oas-generator/oas-generator-servicecomb/src/main/java/org/apache/servicecomb/toolkit/generator/parser/ServicecombPojoParser.java
+++ b/oas-generator/oas-generator-servicecomb/src/main/java/org/apache/servicecomb/toolkit/generator/parser/ServicecombPojoParser.java
@@ -29,7 +29,7 @@
@Override
public int getOrder() {
- return 0;
+ return 100;
}
@Override
diff --git a/oas-generator/oas-generator-servicecomb/src/test/java/org/apache/servicecomb/toolkit/generator/ServiceCombParserTest.java b/oas-generator/oas-generator-servicecomb/src/test/java/org/apache/servicecomb/toolkit/generator/ServiceCombParserTest.java
index d9cf795..8d5bb56 100644
--- a/oas-generator/oas-generator-servicecomb/src/test/java/org/apache/servicecomb/toolkit/generator/ServiceCombParserTest.java
+++ b/oas-generator/oas-generator-servicecomb/src/test/java/org/apache/servicecomb/toolkit/generator/ServiceCombParserTest.java
@@ -41,11 +41,19 @@
boolean canProcess = servicecombJaxrsParser.canProcess(ServicecombJaxrs.class);
Assert.assertTrue(canProcess);
+ canProcess = servicecombJaxrsParser.canProcess(ServicecombPojo.class);
+ Assert.assertFalse(canProcess);
+
canProcess = servicecombSpringmvcParser.canProcess(ServicecombSpringmvc.class);
Assert.assertTrue(canProcess);
+ canProcess = servicecombSpringmvcParser.canProcess(ServicecombPojo.class);
+ Assert.assertFalse(canProcess);
canProcess = servicecombPojoParser.canProcess(ServicecombPojo.class);
Assert.assertTrue(canProcess);
+ canProcess = servicecombPojoParser.canProcess(ServicecombSpringmvc.class);
+ Assert.assertFalse(canProcess);
+ Assert.assertEquals(100, servicecombPojoParser.getOrder());
OasContext pojoOasContext = new OasContext(servicecombPojoParser);
servicecombPojoParser.parser(ServicecombPojo.class, pojoOasContext);
diff --git a/oas-generator/oas-generator-spring/src/main/java/org/apache/servicecomb/toolkit/generator/parser/SpringmvcAnnotationParser.java b/oas-generator/oas-generator-spring/src/main/java/org/apache/servicecomb/toolkit/generator/parser/SpringmvcAnnotationParser.java
index d35621f..923ad4b 100644
--- a/oas-generator/oas-generator-spring/src/main/java/org/apache/servicecomb/toolkit/generator/parser/SpringmvcAnnotationParser.java
+++ b/oas-generator/oas-generator-spring/src/main/java/org/apache/servicecomb/toolkit/generator/parser/SpringmvcAnnotationParser.java
@@ -47,7 +47,7 @@
@Override
public int getOrder() {
- return 0;
+ return 200;
}
@Override
@@ -87,16 +87,5 @@
parameterAnnotationMap.put(RequestParam.class, new RequestParamAnnotationProcessor());
parameterAnnotationMap.put(RequestHeader.class, new RequestHeaderAnnotationProcessor());
}
-
- public static void main(String[] args) {
- List<Integer> integers = new ArrayList<>();
- integers.add(1);
- integers.add(2);
- integers.add(5);
- integers.add(3);
- integers.sort(Comparator.comparingInt(Integer::intValue));
-
- integers.forEach(System.out::println);
- }
}
diff --git a/oas-generator/oas-generator-spring/src/test/java/org/apache/servicecomb/toolkit/generator/SpringParserTest.java b/oas-generator/oas-generator-spring/src/test/java/org/apache/servicecomb/toolkit/generator/SpringParserTest.java
index 3acce3d..8295038 100644
--- a/oas-generator/oas-generator-spring/src/test/java/org/apache/servicecomb/toolkit/generator/SpringParserTest.java
+++ b/oas-generator/oas-generator-spring/src/test/java/org/apache/servicecomb/toolkit/generator/SpringParserTest.java
@@ -29,6 +29,7 @@
public void parse() {
SpringmvcAnnotationParser parser = new SpringmvcAnnotationParser();
+ Assert.assertEquals(200, parser.getOrder());
boolean canProcess = parser.canProcess(String.class);
Assert.assertFalse(canProcess);