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/15 06:34:21 UTC

[servicecomb-java-chassis] branch master updated: [SCB-1896]improve demo test case for testing http headers

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


The following commit(s) were added to refs/heads/master by this push:
     new 85a7f49  [SCB-1896]improve demo test case for testing http headers
85a7f49 is described below

commit 85a7f490417ac8637f47011021dd6379300c20a8
Author: liubao <bi...@qq.com>
AuthorDate: Thu May 14 21:44:34 2020 +0800

    [SCB-1896]improve demo test case for testing http headers
---
 .../demo/springmvc/client/CodeFirstSpringmvcIntf.java |  2 ++
 .../demo/springmvc/client/TestResponse.java           | 11 +++++++++++
 .../demo/springmvc/server/CodeFirstSpringmvc.java     | 19 +++++++++++++++++++
 3 files changed, 32 insertions(+)

diff --git a/demo/demo-springmvc/springmvc-client/src/main/java/org/apache/servicecomb/demo/springmvc/client/CodeFirstSpringmvcIntf.java b/demo/demo-springmvc/springmvc-client/src/main/java/org/apache/servicecomb/demo/springmvc/client/CodeFirstSpringmvcIntf.java
index ec10b14..f7401c3 100644
--- a/demo/demo-springmvc/springmvc-client/src/main/java/org/apache/servicecomb/demo/springmvc/client/CodeFirstSpringmvcIntf.java
+++ b/demo/demo-springmvc/springmvc-client/src/main/java/org/apache/servicecomb/demo/springmvc/client/CodeFirstSpringmvcIntf.java
@@ -36,6 +36,8 @@ public interface CodeFirstSpringmvcIntf {
 
   Response cseResponse();
 
+  Response cseResponseCorrect();
+
   Object testObject(Object input);
 
   EmptyObject testEmpty(EmptyObject input);
diff --git a/demo/demo-springmvc/springmvc-client/src/main/java/org/apache/servicecomb/demo/springmvc/client/TestResponse.java b/demo/demo-springmvc/springmvc-client/src/main/java/org/apache/servicecomb/demo/springmvc/client/TestResponse.java
index 039bb2e..f2b18c4 100644
--- a/demo/demo-springmvc/springmvc-client/src/main/java/org/apache/servicecomb/demo/springmvc/client/TestResponse.java
+++ b/demo/demo-springmvc/springmvc-client/src/main/java/org/apache/servicecomb/demo/springmvc/client/TestResponse.java
@@ -46,6 +46,7 @@ public class TestResponse {
     checkQueryObject();
     testCseResponse();
     testResponseEntity();
+    testCseResponseCorrect();
   }
 
   public void runHighway() {
@@ -65,6 +66,16 @@ public class TestResponse {
     TestMgr.check("User [name=nameA, age=100, index=0]", cseResponse.getResult());
     TestMgr.check("h1v " + srcName, cseResponse.getHeaders().getFirst("h1"));
     TestMgr.check("h2v " + srcName, cseResponse.getHeaders().getFirst("h2"));
+    TestMgr.check(cseResponse.getStatusCode(), 202);
+  }
+
+  private void testCseResponseCorrect() {
+    String srcName = RegistrationManager.INSTANCE.getMicroservice().getServiceName();
+    Response cseResponse = intf.cseResponseCorrect();
+    TestMgr.check("User [name=nameA, age=100, index=0]", cseResponse.getResult());
+    TestMgr.check("h1v " + srcName, cseResponse.getHeaders().getFirst("h1"));
+    TestMgr.check("h2v " + srcName, cseResponse.getHeaders().getFirst("h2"));
+    TestMgr.check(cseResponse.getStatusCode(), 202);
   }
 
   private void testResponseEntity() {
diff --git a/demo/demo-springmvc/springmvc-server/src/main/java/org/apache/servicecomb/demo/springmvc/server/CodeFirstSpringmvc.java b/demo/demo-springmvc/springmvc-server/src/main/java/org/apache/servicecomb/demo/springmvc/server/CodeFirstSpringmvc.java
index 8093372..3ffe1a3 100644
--- a/demo/demo-springmvc/springmvc-server/src/main/java/org/apache/servicecomb/demo/springmvc/server/CodeFirstSpringmvc.java
+++ b/demo/demo-springmvc/springmvc-server/src/main/java/org/apache/servicecomb/demo/springmvc/server/CodeFirstSpringmvc.java
@@ -154,6 +154,8 @@ public class CodeFirstSpringmvc {
     return responseEntity(c1, date);
   }
 
+  // This definition is not correct, response type is not
+  // same as the actual one. May be not support in future.
   @ApiResponse(code = 200, response = User.class, message = "")
   @ResponseHeaders({@ResponseHeader(name = "h1", response = String.class),
       @ResponseHeader(name = "h2", response = String.class)})
@@ -169,6 +171,23 @@ public class CodeFirstSpringmvc {
     return response;
   }
 
+  // This definition is correct, but not supported by highway.
+  // highway do not support define code other than 200
+  @ApiResponse(code = 202, response = User.class, message = "")
+  @ResponseHeaders({@ResponseHeader(name = "h1", response = String.class),
+      @ResponseHeader(name = "h2", response = String.class)})
+  @RequestMapping(path = "/cseResponseCorrect", method = RequestMethod.GET)
+  public Response cseResponseCorrect(InvocationContext c1) {
+    Response response = Response.createSuccess(Status.ACCEPTED, new User());
+    Headers headers = response.getHeaders();
+    headers.addHeader("h1", "h1v " + c1.getContext().get(Const.SRC_MICROSERVICE));
+
+    InvocationContext c2 = ContextUtils.getInvocationContext();
+    headers.addHeader("h2", "h2v " + c2.getContext().get(Const.SRC_MICROSERVICE));
+
+    return response;
+  }
+
   @PostMapping(path = "/testUserMap")
   public Map<String, User> testUserMap(@RequestBody Map<String, User> userMap) {
     return userMap;