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

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

commit 4cc3834b0bc2e38493740022c61b1f420a10d737
Author: liubao <[email protected]>
AuthorDate: Tue May 26 21:20:38 2020 +0800

    [SCB-1935]reorganize test case
---
 .../servicecomb/demo/registry/Application.java     | 26 ++---------
 .../registry/MultiRegistriesServerTestCase.java    | 48 ++++++++++++++++++++
 ...Application.java => ServiceCenterTestCase.java} | 51 ++++++++++------------
 .../servicecomb/demo/CategorizedTestCase.java      |  4 ++
 .../demo/CategorizedTestCaseRunner.java            |  8 +++-
 5 files changed, 84 insertions(+), 53 deletions(-)

diff --git 
a/demo/demo-multi-registries/demo-multi-registries-client/src/main/java/org/apache/servicecomb/demo/registry/Application.java
 
b/demo/demo-multi-registries/demo-multi-registries-client/src/main/java/org/apache/servicecomb/demo/registry/Application.java
index 2ef836c..ffe3756 100644
--- 
a/demo/demo-multi-registries/demo-multi-registries-client/src/main/java/org/apache/servicecomb/demo/registry/Application.java
+++ 
b/demo/demo-multi-registries/demo-multi-registries-client/src/main/java/org/apache/servicecomb/demo/registry/Application.java
@@ -17,25 +17,18 @@
 
 package org.apache.servicecomb.demo.registry;
 
-import java.util.List;
-import java.util.Map;
-
+import org.apache.servicecomb.demo.CategorizedTestCaseRunner;
 import org.apache.servicecomb.demo.TestMgr;
-import org.apache.servicecomb.provider.pojo.RpcReference;
-import org.apache.servicecomb.provider.springmvc.reference.RestTemplateBuilder;
 import org.apache.servicecomb.springboot2.starter.EnableServiceComb;
 import org.springframework.boot.WebApplicationType;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
 import org.springframework.boot.builder.SpringApplicationBuilder;
 import org.springframework.stereotype.Component;
-import org.springframework.web.client.RestTemplate;
 
 @SpringBootApplication
 @EnableServiceComb
 @Component
 public class Application {
-  @RpcReference(microserviceName = "thirdParty-service-center", schemaId = 
"ServiceCenterEndpoint")
-  static IServiceCenterEndpoint serviceCenterEndpoint;
 
   public static void main(final String[] args) throws Exception {
     new 
SpringApplicationBuilder().sources(Application.class).web(WebApplicationType.SERVLET).build().run(args);
@@ -43,22 +36,9 @@ public class Application {
     runTest();
   }
 
-  public static void runTest() {
-    RestTemplate template = RestTemplateBuilder.create();
-
-    // invoke demo-multi-registries-server
-    TestMgr.check("2", template
-        
.getForObject("cse://demo-multi-registries-server/register/url/prefix/getName?name=2",
-            String.class));
+  public static void runTest() throws Exception {
+    
CategorizedTestCaseRunner.runCategorizedTestCase("demo-multi-registries-server");
 
-    // invoke service-center(3rd-parties)
-    @SuppressWarnings("unchecked")
-    Map<String, List<?>> result = (Map<String, List<?>>) 
serviceCenterEndpoint.getInstances("demo-multi-registries",
-        "demo-multi-registries-server",
-        "true",
-        "0.0.2",
-        "default");
-    TestMgr.check(result.get("instances").size(), 1);
     TestMgr.summary();
     if (!TestMgr.errors().isEmpty()) {
       throw new IllegalStateException("tests failed");
diff --git 
a/demo/demo-multi-registries/demo-multi-registries-client/src/main/java/org/apache/servicecomb/demo/registry/MultiRegistriesServerTestCase.java
 
b/demo/demo-multi-registries/demo-multi-registries-client/src/main/java/org/apache/servicecomb/demo/registry/MultiRegistriesServerTestCase.java
new file mode 100644
index 0000000..d09babf
--- /dev/null
+++ 
b/demo/demo-multi-registries/demo-multi-registries-client/src/main/java/org/apache/servicecomb/demo/registry/MultiRegistriesServerTestCase.java
@@ -0,0 +1,48 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.servicecomb.demo.registry;
+
+import org.apache.servicecomb.demo.CategorizedTestCase;
+import org.apache.servicecomb.demo.TestMgr;
+import org.apache.servicecomb.provider.springmvc.reference.RestTemplateBuilder;
+import org.springframework.stereotype.Component;
+import org.springframework.web.client.RestTemplate;
+
+@Component
+public class MultiRegistriesServerTestCase implements CategorizedTestCase {
+  RestTemplate template = RestTemplateBuilder.create();
+
+  @Override
+  public void testRestTransport() throws Exception {
+
+    // invoke demo-multi-registries-server
+    TestMgr.check("2", template
+        
.getForObject("cse://demo-multi-registries-server/register/url/prefix/getName?name=2",
+            String.class));
+  }
+
+  @Override
+  public void testHighwayTransport() throws Exception {
+
+  }
+
+  @Override
+  public void testAllTransport() throws Exception {
+
+  }
+}
diff --git 
a/demo/demo-multi-registries/demo-multi-registries-client/src/main/java/org/apache/servicecomb/demo/registry/Application.java
 
b/demo/demo-multi-registries/demo-multi-registries-client/src/main/java/org/apache/servicecomb/demo/registry/ServiceCenterTestCase.java
similarity index 55%
copy from 
demo/demo-multi-registries/demo-multi-registries-client/src/main/java/org/apache/servicecomb/demo/registry/Application.java
copy to 
demo/demo-multi-registries/demo-multi-registries-client/src/main/java/org/apache/servicecomb/demo/registry/ServiceCenterTestCase.java
index 2ef836c..c84bdc2 100644
--- 
a/demo/demo-multi-registries/demo-multi-registries-client/src/main/java/org/apache/servicecomb/demo/registry/Application.java
+++ 
b/demo/demo-multi-registries/demo-multi-registries-client/src/main/java/org/apache/servicecomb/demo/registry/ServiceCenterTestCase.java
@@ -20,48 +20,41 @@ package org.apache.servicecomb.demo.registry;
 import java.util.List;
 import java.util.Map;
 
+import org.apache.servicecomb.demo.CategorizedTestCase;
 import org.apache.servicecomb.demo.TestMgr;
 import org.apache.servicecomb.provider.pojo.RpcReference;
-import org.apache.servicecomb.provider.springmvc.reference.RestTemplateBuilder;
-import org.apache.servicecomb.springboot2.starter.EnableServiceComb;
-import org.springframework.boot.WebApplicationType;
-import org.springframework.boot.autoconfigure.SpringBootApplication;
-import org.springframework.boot.builder.SpringApplicationBuilder;
 import org.springframework.stereotype.Component;
-import org.springframework.web.client.RestTemplate;
 
-@SpringBootApplication
-@EnableServiceComb
 @Component
-public class Application {
+public class ServiceCenterTestCase implements CategorizedTestCase {
   @RpcReference(microserviceName = "thirdParty-service-center", schemaId = 
"ServiceCenterEndpoint")
-  static IServiceCenterEndpoint serviceCenterEndpoint;
-
-  public static void main(final String[] args) throws Exception {
-    new 
SpringApplicationBuilder().sources(Application.class).web(WebApplicationType.SERVLET).build().run(args);
-
-    runTest();
-  }
-
-  public static void runTest() {
-    RestTemplate template = RestTemplateBuilder.create();
-
-    // invoke demo-multi-registries-server
-    TestMgr.check("2", template
-        
.getForObject("cse://demo-multi-registries-server/register/url/prefix/getName?name=2",
-            String.class));
+  IServiceCenterEndpoint serviceCenterEndpoint;
 
+  @Override
+  public void testRestTransport() throws Exception {
     // invoke service-center(3rd-parties)
     @SuppressWarnings("unchecked")
-    Map<String, List<?>> result = (Map<String, List<?>>) 
serviceCenterEndpoint.getInstances("demo-multi-registries",
+    Map<String, List<?>> result = (Map<String, List<?>>) 
serviceCenterEndpoint.getInstances(
+        "demo-multi-registries",
         "demo-multi-registries-server",
         "true",
         "0.0.2",
         "default");
     TestMgr.check(result.get("instances").size(), 1);
-    TestMgr.summary();
-    if (!TestMgr.errors().isEmpty()) {
-      throw new IllegalStateException("tests failed");
-    }
+  }
+
+  @Override
+  public void testHighwayTransport() throws Exception {
+
+  }
+
+  @Override
+  public void testAllTransport() throws Exception {
+
+  }
+
+  @Override
+  public String getMicroserviceName() {
+    return "thirdParty-service-center";
   }
 }
diff --git 
a/demo/demo-schema/src/main/java/org/apache/servicecomb/demo/CategorizedTestCase.java
 
b/demo/demo-schema/src/main/java/org/apache/servicecomb/demo/CategorizedTestCase.java
index 51c733a..dd144ed 100644
--- 
a/demo/demo-schema/src/main/java/org/apache/servicecomb/demo/CategorizedTestCase.java
+++ 
b/demo/demo-schema/src/main/java/org/apache/servicecomb/demo/CategorizedTestCase.java
@@ -32,4 +32,8 @@ public interface CategorizedTestCase {
    * test case which successful in both REST and HIGHWAY transport
    */
   void testAllTransport() throws Exception;
+
+  default String getMicroserviceName() {
+    return null;
+  }
 }
diff --git 
a/demo/demo-schema/src/main/java/org/apache/servicecomb/demo/CategorizedTestCaseRunner.java
 
b/demo/demo-schema/src/main/java/org/apache/servicecomb/demo/CategorizedTestCaseRunner.java
index ee508cd..20424df 100644
--- 
a/demo/demo-schema/src/main/java/org/apache/servicecomb/demo/CategorizedTestCaseRunner.java
+++ 
b/demo/demo-schema/src/main/java/org/apache/servicecomb/demo/CategorizedTestCaseRunner.java
@@ -26,8 +26,14 @@ public class CategorizedTestCaseRunner {
   public static void runCategorizedTestCase(String microserviceName) throws 
Exception {
     Map<String, CategorizedTestCase> tests = 
BeanUtils.getContext().getBeansOfType(CategorizedTestCase.class);
     for (String transport : DemoConst.transports) {
-      changeTransport(microserviceName, transport);
       for (CategorizedTestCase testCase : tests.values()) {
+
+        if (testCase.getMicroserviceName() != null) {
+          changeTransport(testCase.getMicroserviceName(), transport);
+        } else {
+          changeTransport(microserviceName, transport);
+        }
+
         testCase.testAllTransport();
         if ("rest".equals(transport)) {
           testCase.testRestTransport();

Reply via email to