TUSCANY-3747 - Adjusting test case to expected behaviour

git-svn-id: https://svn.apache.org/repos/asf/tuscany/sca-java-1.x/trunk@1039841 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/modules/binding-jsonrpc-runtime/src/test/java/org/apache/tuscany/sca/binding/jsonrpc/BindingTestCase.java b/modules/binding-jsonrpc-runtime/src/test/java/org/apache/tuscany/sca/binding/jsonrpc/BindingTestCase.java
index 1e89644..4de6e44 100644
--- a/modules/binding-jsonrpc-runtime/src/test/java/org/apache/tuscany/sca/binding/jsonrpc/BindingTestCase.java
+++ b/modules/binding-jsonrpc-runtime/src/test/java/org/apache/tuscany/sca/binding/jsonrpc/BindingTestCase.java
@@ -6,33 +6,30 @@
  * 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.    

+ * under the License.

  */

 package org.apache.tuscany.sca.binding.jsonrpc;

 

 import helloworld.BeanA;

 import helloworld.HelloWorldService;

 

-import java.io.BufferedReader;

 import java.io.ByteArrayInputStream;

 import java.io.IOException;

-import java.io.InputStreamReader;

 import java.net.MalformedURLException;

-import java.net.URL;

 

 import junit.framework.Assert;

 

 import org.apache.tuscany.sca.node.SCAClient;

-import org.apache.tuscany.sca.node.SCANodeFactory;

 import org.apache.tuscany.sca.node.SCANode;

+import org.apache.tuscany.sca.node.SCANodeFactory;

 import org.json.JSONObject;

 import org.junit.AfterClass;

 import org.junit.BeforeClass;

@@ -47,33 +44,32 @@
 public class BindingTestCase {

 

     private static SCANode node;

-    

+

     /* SMD =

-     * 

+     *

      * {"SMDVersion":".1","objectName":"HelloWorldService","serviceType":"JSON-RPC","serviceURL":"http://ibm-7a66aa9141b:8085/HelloWorldComponent/HelloWorldService","methods":[{"name":"sayHello","parameters":[{"name":"param0","type":"STRING"}]},{"name":"sayHello2","parameters":[{"name":"param0","type":"STRING"},{"name":"param1","type":"STRING"}]},{"name":"sayHello3","parameters":[{"name":"param0","type":"STRING"}]},{"name":"sayHello4","parameters":[{"name":"param0","type":"STRING"}]},{"name":"sayHello5","parameters":[{"name":"param0","type":"STRING"}]},{"name":"sayHello6","parameters":[{"name":"param0","type":"STRING"},{"name":"param1","type":"STRING"},{"name":"param2","type":"STRING"}]},{"name":"sayHello7","parameters":[]}]}

      */

-    

+

     public JSONObject callService(String url, JSONObject jsonRequest) throws Exception {

         System.out.println("Request = " + jsonRequest.toString());

         WebConversation wc   = new WebConversation();

-        WebRequest request   = new PostMethodWebRequest( url, 

+        WebRequest request   = new PostMethodWebRequest( url,

                                                          new ByteArrayInputStream(jsonRequest.toString().getBytes("UTF-8")),"application/json");

         WebResponse response = wc.getResource(request);

-        System.out.println("Response= " + response.getText());               

+        System.out.println("Response= " + response.getText());

         Assert.assertEquals(200, response.getResponseCode());

-        return new JSONObject(response.getText()); 

-    }    

+        return new JSONObject(response.getText());

+    }

 

     @Test

-    @Ignore("TUSCANY-3747")

     public void testOneArg() throws MalformedURLException, IOException {

         try {

-	        JSONObject jsonRequest = new JSONObject("{\"params\":[\"\\\"petra\\\"\"],\"method\":\"sayHello\",\"id\":1}");

+	        JSONObject jsonRequest = new JSONObject("{\"params\":[\"petra\"],\"method\":\"sayHello\",\"id\":1}");

 	        JSONObject jsonResp    = callService ("http://localhost:8085/HelloWorldComponent/HelloWorldService",

 	                                              jsonRequest);

 	        Assert.assertNotNull(jsonResp);

-	        Assert.assertEquals("{\"id\":1,\"result\":\"\\\"Hello petra\\\"\"}", jsonResp.toString());

-        

+	        Assert.assertEquals("{\"id\":1,\"result\":\"Hello petra\"}", jsonResp.toString());

+

         } catch(Exception ex){

         	ex.printStackTrace();

         	Assert.fail();

@@ -81,55 +77,54 @@
     }

 

     @Test

-    @Ignore("TUSCANY-3747")

-    public void testTwoArgs() throws MalformedURLException, IOException {       

+    public void testTwoArgs() throws MalformedURLException, IOException {

         try {

-	        JSONObject jsonRequest = new JSONObject("{\"params\":[\"\\\"petra\\\"\", \"\\\"arnold\\\"\"],\"method\":\"sayHello2\",\"id\":1}");

+	        JSONObject jsonRequest = new JSONObject("{\"params\":[\"petra\", \"arnold\"],\"method\":\"sayHello2\",\"id\":1}");

 	        JSONObject jsonResp    = callService ("http://localhost:8085/HelloWorldComponent/HelloWorldService",

 	                                              jsonRequest);

 	        Assert.assertNotNull(jsonResp);

-	        Assert.assertEquals("{\"id\":1,\"result\":\"\\\"Hello petra arnold\\\"\"}", jsonResp.toString());

-        

+	        Assert.assertEquals("{\"id\":1,\"result\":\"Hello petra arnold\"}", jsonResp.toString());

+

         } catch(Exception ex){

         	ex.printStackTrace();

         	Assert.fail();

-        }       

+        }

 

-    } 

-    

+    }

+

     @Test

-    @Ignore("TUSCANY-3747")

-    public void testComplexParams() throws MalformedURLException, IOException {         

+    public void testComplexParams() throws MalformedURLException, IOException {

         try {

 	        JSONObject jsonRequest = new JSONObject("{\"params\":[{\"b\":true, \"s\":\"fred\", \"x\":2, \"y\":5}],\"method\":\"sayHello3\",\"id\":1}");

 	        JSONObject jsonResp    = callService ("http://localhost:8085/HelloWorldComponent/HelloWorldService",

 	                                              jsonRequest);

 	        Assert.assertNotNull(jsonResp);

-	        Assert.assertEquals("{\"id\":1,\"result\":{\"s\":\"XYZ\",\"b\":true,\"y\":5,\"x\":2}}", jsonResp.toString());

-        

+

+	        //JabSorb sends class hints with complex parameters/types

+	        Assert.assertEquals("{\"id\":1,\"result\":{\"s\":\"XYZ\",\"b\":true,\"javaClass\":\"helloworld.BeanA\",\"y\":5,\"x\":2}}", jsonResp.toString());

+

         } catch(Exception ex){

         	ex.printStackTrace();

         	Assert.fail();

-        }          

-    }  

-    

+        }

+    }

+

     @Test

-    @Ignore("TUSCANY-3747")

-    public void testStringArray() throws MalformedURLException, IOException {     

-        

+    public void testStringArray() throws MalformedURLException, IOException {

+

         try {

 	        JSONObject jsonRequest = new JSONObject("{\"params\":[[\"Fred\", \"Bloggs\"]],\"method\":\"sayHello4\",\"id\":1}");

 	        JSONObject jsonResp    = callService ("http://localhost:8085/HelloWorldComponent/HelloWorldService",

 	                                              jsonRequest);

 	        Assert.assertNotNull(jsonResp);

 	        Assert.assertEquals("{\"id\":1,\"result\":[\"Hello Fred Bloggs\"]}", jsonResp.toString());

-        

+

         } catch(Exception ex){

         	ex.printStackTrace();

         	Assert.fail();

-        }        

-    }   

-    

+        }

+    }

+

     @Test

     @Ignore

     public void testBeanArray() throws MalformedURLException, IOException {

@@ -141,26 +136,26 @@
         bean.setS("Fred");

         bean.setX(2);

         bean.setX(5);

-        

+

         BeanA[] beans = {bean};

         BeanA[] response = client.sayHello5(beans);

 

         Assert.assertEquals("Hello Fred", response[0].getS());

 */

-        

+

         try {

 	        JSONObject jsonRequest = new JSONObject("{\"params\":[{\"b\":true, \"s\":\"fred\", \"x\":2, \"y\":5}],\"method\":\"sayHello3\",\"id\":1}");

 	        JSONObject jsonResp    = callService ("http://localhost:8085/HelloWorldComponent/HelloWorldService",

 	                                              jsonRequest);

 	        Assert.assertNotNull(jsonResp);

 	        Assert.assertEquals("{\"id\":1,\"result\":{\"s\":\"XYZ\",\"b\":true,\"y\":5,\"x\":2}}", jsonResp.toString());

-        

+

         } catch(Exception ex){

         	ex.printStackTrace();

         	Assert.fail();

-        }        

-    }       

-    

+        }

+    }

+

     /* HTTP Request for testMixedArray

         GET /HelloWorldComponent/HelloWorldService/sayHello6?arg0=%5B%7B%22b%22%3Atrue%2C%22s%22%3A%22Fred%22%2C%22y%22%3Anull%2C%22x%22%3A5%7D%5D&arg1=%5B%22Fred%22%2C%22Bloggs%22%5D&arg2=%22Bloggs%22 HTTP/1.1

         Host: localhost:8085

@@ -185,23 +180,23 @@
         bean.setS("Fred");

         bean.setX(2);

         bean.setX(5);

-        

+

         BeanA[] beans = {bean};

         String[] names = {"Fred", "Bloggs"};

-        

+

         String[] response = client.sayHello6(beans, names, "Bloggs");

 

         Assert.assertEquals("Hello Fred Fred Bloggs Bloggs", response[0]);

-    }  

-    

+    }

+

     @Test

     @Ignore

     public void testVoid() throws MalformedURLException, IOException {

         HelloWorldService client = ((SCAClient)node).getService(HelloWorldService.class, "HelloWorldClient");

 

         client.sayHello7();

-    }     

-    

+    }

+

     @Test

     @Ignore

     public void waitForInput(){

@@ -214,12 +209,12 @@
     }

 

     @BeforeClass

-    public static void init() throws Exception {       

+    public static void init() throws Exception {

         SCANodeFactory factory = SCANodeFactory.newInstance();

         node = factory.createSCANodeFromClassLoader("helloworld.composite", BindingTestCase.class.getClassLoader());

-        node.start();        

+        node.start();

     }

-    

+

     @AfterClass

     public static void destroy() throws Exception {

         if (node != null) {