[
https://issues.apache.org/jira/browse/SCB-292?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16433266#comment-16433266
]
ASF GitHub Bot commented on SCB-292:
------------------------------------
liubao68 commented on a change in pull request #627: [SCB-292] chassis support
standard parameter validation
URL:
https://github.com/apache/incubator-servicecomb-java-chassis/pull/627#discussion_r180611794
##########
File path:
demo/demo-jaxrs/jaxrs-client/src/main/java/org/apache/servicecomb/demo/jaxrs/client/JaxrsClient.java
##########
@@ -147,4 +168,73 @@ private static void testRawJsonParam(RestTemplate
template, String cseUrlPrefix)
TestMgr.check("hello Tom",
template.postForObject(cseUrlPrefix + "/compute/testrawjson",
jsonPerson, String.class));
}
+
+ private static void testValidatorAddFail(RestTemplate template, String
cseUrlPrefix) {
+ Map<String, String> params = new HashMap<>();
+ params.put("a", "5");
+ params.put("b", "3");
+ boolean isExcep = false;
+ try {
+ template.postForObject(cseUrlPrefix + "add", params, Integer.class);
+ } catch (InvocationException e) {
+ isExcep = true;
+ TestMgr.check(490, e.getStatus().getStatusCode());
+ }
+
+ TestMgr.check(true, isExcep);
+ }
+
+ private static void testValidatorAddSuccess(RestTemplate template, String
cseUrlPrefix) {
+ Map<String, String> params = new HashMap<>();
+ params.put("a", "5");
+ params.put("b", "20");
+ int result = template.postForObject(cseUrlPrefix + "add", params,
Integer.class);
+ TestMgr.check(25, result);
+ }
+
+ private static void testValidatorSayHiFail(RestTemplate template, String
cseUrlPrefix) {
+ boolean isExcep = false;
+ try {
+ template.exchange(cseUrlPrefix + "sayhi/{name}", HttpMethod.PUT, null,
String.class, "te");
+ } catch (InvocationException e) {
+ isExcep = true;
+ TestMgr.check(490, e.getStatus().getStatusCode());
+ }
+ TestMgr.check(true, isExcep);
+ }
+
+ private static void testValidatorSayHiSuccess(RestTemplate template, String
cseUrlPrefix) {
+ ResponseEntity<String> responseEntity =
+ template.exchange(cseUrlPrefix + "sayhi/{name}", HttpMethod.PUT, null,
String.class, "world");
+ TestMgr.check(202, responseEntity.getStatusCode());
+ TestMgr.check("world sayhi", responseEntity.getBody());
+ }
+
+ private static void testValidatorExchangeFail(RestTemplate template, String
cseUrlPrefix) {
+ HttpHeaders headers = new HttpHeaders();
+ headers.add("Accept", MediaType.APPLICATION_JSON);
+ Student student = new Student();
+ student.setName("");
+ student.setAge(25);
+ boolean isExcep = false;
+ try {
+ HttpEntity<Student> requestEntity = new HttpEntity<>(student, headers);
+ template.exchange(cseUrlPrefix + "/sayhello",
+ HttpMethod.POST,
+ requestEntity,
+ Student.class);
+ } catch (InvocationException e) {
+ isExcep = true;
+ TestMgr.check(490, e.getStatus().getStatusCode());
Review comment:
490 error code exposes that consumer logic got some bad encapsulation. Maybe
we need to find out the cause or leave a comment here and submit an improvement
issue to fix later.
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
[email protected]
> As a developer, I want to use annotation to validate input parameter
> --------------------------------------------------------------------
>
> Key: SCB-292
> URL: https://issues.apache.org/jira/browse/SCB-292
> Project: Apache ServiceComb
> Issue Type: New Feature
> Components: Java-Chassis
> Reporter: wujimin
> Assignee: sukesh
> Priority: Major
> Fix For: java-chassis-1.0.0-m2
>
>
> move fromĀ https://servicecomb.atlassian.net/browse/JAV-475
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)