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;
}