You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@servicecomb.apache.org by li...@apache.org on 2020/05/27 01:41:06 UTC
[servicecomb-java-chassis] 03/03: [SCB-1935]reorganize test case
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 <bi...@qq.com>
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();