This is an automated email from the ASF dual-hosted git repository.

chanjarster pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/servicecomb-toolkit.git

commit 3743b86912efb615a7783c9ac94aac2d3d139953
Author: kakulisen <[email protected]>
AuthorDate: Tue Nov 12 15:51:14 2019 +0800

    add unit test
    
    Signed-off-by: kakulisen <[email protected]>
---
 .../generator/util/LocalVariableVisitor.java       |  3 --
 .../toolkit/generator/AnnotationProcessorTest.java | 51 +++++++++++++++++++---
 .../servicecomb/toolkit/generator/ContextTest.java | 32 +++++++++++++-
 .../generator/parser/ServicecombPojoParser.java    |  2 +-
 .../toolkit/generator/ServiceCombParserTest.java   |  8 ++++
 .../parser/SpringmvcAnnotationParser.java          | 13 +-----
 .../toolkit/generator/SpringParserTest.java        |  1 +
 7 files changed, 88 insertions(+), 22 deletions(-)

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 @@ import org.objectweb.asm.Type;
 
 public class LocalVariableVisitor extends MethodVisitor {
 
-  private boolean isStatic;
-
   private String[] parameterNames;
 
   private final int[] lvtSlotIndex;
@@ -33,7 +31,6 @@ public class LocalVariableVisitor extends MethodVisitor {
 
   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 java.lang.reflect.Method;
 
 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 @@ public class AnnotationProcessorTest {
   @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 @@ public class AnnotationProcessorTest {
         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;
 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 @@ public class ContextTest {
     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 @@ public class ContextTest {
     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 @@ public class ContextTest {
     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 @@ public class ContextTest {
     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 @@ public class ServicecombPojoParser extends 
AbstractAnnotationParser {
 
   @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 @@ public class ServiceCombParserTest {
     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 @@ public class SpringmvcAnnotationParser extends 
AbstractAnnotationParser {
 
   @Override
   public int getOrder() {
-    return 0;
+    return 200;
   }
 
   @Override
@@ -87,16 +87,5 @@ public class SpringmvcAnnotationParser extends 
AbstractAnnotationParser {
     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 class SpringParserTest {
   public void parse() {
     SpringmvcAnnotationParser parser = new SpringmvcAnnotationParser();
 
+    Assert.assertEquals(200, parser.getOrder());
     boolean canProcess = parser.canProcess(String.class);
     Assert.assertFalse(canProcess);
 

Reply via email to