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 ed076d6  add more test cases to 20M limit and null map value (#2589)
ed076d6 is described below

commit ed076d61775b8c6388553115f9d08769b667a718
Author: liubao68 <[email protected]>
AuthorDate: Sat Sep 18 11:57:11 2021 +0800

    add more test cases to 20M limit and null map value (#2589)
    
    * add more test cases to 20M limit and null map value
    
    * remove 20M limit test case for CI heap size limit
---
 .../demo/pojo/client/CodeFirstPojoClient.java      | 42 ++++++++++++++++++++++
 .../demo/pojo/server/CodeFirstPojo.java            |  6 ++++
 .../apache/servicecomb/demo/CodeFirstPojoIntf.java |  3 ++
 .../MapModel.java}                                 | 41 +++++++++------------
 .../demo/pojo/test/endpoints/CodeFirstPojo.java    |  6 ++++
 5 files changed, 73 insertions(+), 25 deletions(-)

diff --git 
a/demo/demo-pojo/pojo-client/src/main/java/org/apache/servicecomb/demo/pojo/client/CodeFirstPojoClient.java
 
b/demo/demo-pojo/pojo-client/src/main/java/org/apache/servicecomb/demo/pojo/client/CodeFirstPojoClient.java
index dc03b66..375561f 100644
--- 
a/demo/demo-pojo/pojo-client/src/main/java/org/apache/servicecomb/demo/pojo/client/CodeFirstPojoClient.java
+++ 
b/demo/demo-pojo/pojo-client/src/main/java/org/apache/servicecomb/demo/pojo/client/CodeFirstPojoClient.java
@@ -30,6 +30,7 @@ import org.apache.servicecomb.demo.CategorizedTestCase;
 import org.apache.servicecomb.demo.CodeFirstPojoIntf;
 import org.apache.servicecomb.demo.TestMgr;
 import org.apache.servicecomb.demo.compute.Person;
+import org.apache.servicecomb.demo.server.MapModel;
 import org.apache.servicecomb.demo.server.User;
 import org.apache.servicecomb.foundation.vertx.VertxUtils;
 import org.apache.servicecomb.provider.pojo.RpcReference;
@@ -67,6 +68,7 @@ public class CodeFirstPojoClient implements 
CategorizedTestCase {
   }
 
   private void testAll(CodeFirstPojoIntf codeFirst) {
+    remoteCodeFirstPojo_testMapModel(codeFirst);
     remoteCodeFirstPojo_testMap(codeFirst);
     testCodeFirstUserMap(codeFirst);
     testCodeFirstUserArray(codeFirst);
@@ -121,6 +123,32 @@ public class CodeFirstPojoClient implements 
CategorizedTestCase {
     }
   }
 
+  private void remoteCodeFirstPojo_testMapModel(CodeFirstPojoIntf codeFirst) {
+    MapModel model = new MapModel();
+    model.setName("hello");
+    Map<String, String> userMap = new HashMap<>();
+    userMap.put("u1", "u1");
+    userMap.put("u2", null);
+    model.setNames(userMap);
+    MapModel result = codeFirst.testMapModel(model);
+
+    TestMgr.check(result.getName(), "hello");
+    TestMgr.check(result.getNames().get("u1"), "u1");
+    TestMgr.check(result.getNames().get("u2"), null);
+
+    model = new MapModel();
+    model.setName(null);
+    userMap = new HashMap<>();
+    userMap.put("u1", "u1");
+    userMap.put("u2", null);
+    model.setNames(userMap);
+    result = codeFirst.testMapModel(model);
+
+    TestMgr.check(result.getName(), null);
+    TestMgr.check(result.getNames().get("u1"), "u1");
+    TestMgr.check(result.getNames().get("u2"), null);
+  }
+
   private void remoteCodeFirstPojo_testMap(CodeFirstPojoIntf codeFirst) {
     Map<String, String> userMap = new HashMap<>();
     userMap.put("u1", "u1");
@@ -137,6 +165,20 @@ public class CodeFirstPojoClient implements 
CategorizedTestCase {
 
     TestMgr.check(result.get("u1"), "u1");
     TestMgr.check(result.get("u2"), "u2");
+
+    // test large data more than 20M
+    // can not run the test case in CI , because will cause heap size limit
+//    char[] data = new char[30 * 1024 * 1024];
+//    Arrays.fill(data, 'h');
+//    userMap = new HashMap<>();
+//    userMap.put("u1", "u1");
+//    userMap.put("u2", "u2");
+//    userMap.put("u3", new String(data));
+//    result = codeFirst.testMap(userMap);
+//
+//    TestMgr.check(result.get("u1"), "u1");
+//    TestMgr.check(result.get("u2"), "u2");
+//    TestMgr.check(result.get("u3"), new String(data));
   }
 
   private void testCodeFirstUserMap(CodeFirstPojoIntf codeFirst) {
diff --git 
a/demo/demo-pojo/pojo-server/src/main/java/org/apache/servicecomb/demo/pojo/server/CodeFirstPojo.java
 
b/demo/demo-pojo/pojo-server/src/main/java/org/apache/servicecomb/demo/pojo/server/CodeFirstPojo.java
index 3b02aec..b4653b5 100644
--- 
a/demo/demo-pojo/pojo-server/src/main/java/org/apache/servicecomb/demo/pojo/server/CodeFirstPojo.java
+++ 
b/demo/demo-pojo/pojo-server/src/main/java/org/apache/servicecomb/demo/pojo/server/CodeFirstPojo.java
@@ -24,6 +24,7 @@ import java.util.concurrent.CompletableFuture;
 
 import org.apache.servicecomb.demo.CodeFirstPojoIntf;
 import org.apache.servicecomb.demo.compute.Person;
+import org.apache.servicecomb.demo.server.MapModel;
 import org.apache.servicecomb.demo.server.User;
 import org.apache.servicecomb.provider.pojo.RpcSchema;
 import org.apache.servicecomb.swagger.invocation.context.ContextUtils;
@@ -35,6 +36,11 @@ import io.swagger.annotations.SwaggerDefinition;
 @SwaggerDefinition(basePath = "/pojo/rest")
 public class CodeFirstPojo implements CodeFirstPojoIntf {
   @Override
+  public MapModel testMapModel(MapModel model) {
+    return model;
+  }
+
+  @Override
   public Map<String, String> testMap(Map<String, String> map) {
     return map;
   }
diff --git 
a/demo/demo-schema/src/main/java/org/apache/servicecomb/demo/CodeFirstPojoIntf.java
 
b/demo/demo-schema/src/main/java/org/apache/servicecomb/demo/CodeFirstPojoIntf.java
index ccb95b8..ee958e1 100644
--- 
a/demo/demo-schema/src/main/java/org/apache/servicecomb/demo/CodeFirstPojoIntf.java
+++ 
b/demo/demo-schema/src/main/java/org/apache/servicecomb/demo/CodeFirstPojoIntf.java
@@ -22,9 +22,12 @@ import java.util.List;
 import java.util.Map;
 
 import org.apache.servicecomb.demo.compute.Person;
+import org.apache.servicecomb.demo.server.MapModel;
 import org.apache.servicecomb.demo.server.User;
 
 public interface CodeFirstPojoIntf {
+  MapModel testMapModel(MapModel model);
+
   Map<String, String> testMap(Map<String, String> map);
 
   Map<String, User> testUserMap(Map<String, User> userMap);
diff --git 
a/demo/demo-schema/src/main/java/org/apache/servicecomb/demo/CodeFirstPojoIntf.java
 
b/demo/demo-schema/src/main/java/org/apache/servicecomb/demo/server/MapModel.java
similarity index 54%
copy from 
demo/demo-schema/src/main/java/org/apache/servicecomb/demo/CodeFirstPojoIntf.java
copy to 
demo/demo-schema/src/main/java/org/apache/servicecomb/demo/server/MapModel.java
index ccb95b8..695310c 100644
--- 
a/demo/demo-schema/src/main/java/org/apache/servicecomb/demo/CodeFirstPojoIntf.java
+++ 
b/demo/demo-schema/src/main/java/org/apache/servicecomb/demo/server/MapModel.java
@@ -15,37 +15,28 @@
  * limitations under the License.
  */
 
-package org.apache.servicecomb.demo;
+package org.apache.servicecomb.demo.server;
 
-import java.util.Date;
-import java.util.List;
 import java.util.Map;
 
-import org.apache.servicecomb.demo.compute.Person;
-import org.apache.servicecomb.demo.server.User;
+public class MapModel {
+  private String name;
 
-public interface CodeFirstPojoIntf {
-  Map<String, String> testMap(Map<String, String> map);
+  private Map<String, String> names;
 
-  Map<String, User> testUserMap(Map<String, User> userMap);
+  public String getName() {
+    return name;
+  }
 
-  List<User> testUserArray(List<User> users);
+  public void setName(String name) {
+    this.name = name;
+  }
 
-  String[] testStrings(String[] input);
+  public Map<String, String> getNames() {
+    return names;
+  }
 
-  byte[] testBytes(byte[] input);
-
-  int reduce(int a, int b);
-
-  Date addDate(Date date, long second);
-
-  Person sayHello(Person user);
-
-  String saySomething(String prefix, Person user);
-
-  String sayHi(String name);
-
-  boolean isTrue();
-
-  String addString(List<String> s);
+  public void setNames(Map<String, String> names) {
+    this.names = names;
+  }
 }
diff --git 
a/integration-tests/pojo-test/src/test/java/org/apache/servicecomb/demo/pojo/test/endpoints/CodeFirstPojo.java
 
b/integration-tests/pojo-test/src/test/java/org/apache/servicecomb/demo/pojo/test/endpoints/CodeFirstPojo.java
index 944d17e..9cd7177 100644
--- 
a/integration-tests/pojo-test/src/test/java/org/apache/servicecomb/demo/pojo/test/endpoints/CodeFirstPojo.java
+++ 
b/integration-tests/pojo-test/src/test/java/org/apache/servicecomb/demo/pojo/test/endpoints/CodeFirstPojo.java
@@ -23,6 +23,7 @@ import java.util.Map;
 
 import org.apache.servicecomb.demo.CodeFirstPojoIntf;
 import org.apache.servicecomb.demo.compute.Person;
+import org.apache.servicecomb.demo.server.MapModel;
 import org.apache.servicecomb.demo.server.User;
 import org.apache.servicecomb.provider.pojo.RpcSchema;
 import org.apache.servicecomb.swagger.invocation.context.ContextUtils;
@@ -31,6 +32,11 @@ import 
org.apache.servicecomb.swagger.invocation.context.ContextUtils;
 public class CodeFirstPojo implements CodeFirstPojoIntf {
 
   @Override
+  public MapModel testMapModel(MapModel model) {
+    return model;
+  }
+
+  @Override
   public Map<String, String> testMap(Map<String, String> map) {
     return map;
   }

Reply via email to