public void SimpleCall() { JsonRpcDispatcher server = new JsonRpcDispatcher(new TestService()); string responseString = server.Process("{ id : 1, method : 'Say', params : [ 'Hello' ] }"); IDictionary response = (IDictionary) Parse(responseString); Assert.AreEqual(1, (int) (JsonNumber) response["id"]); Assert.AreEqual("Hello", response["result"]); }
public void ProcWithArrayArg() { JsonRpcDispatcher server = new JsonRpcDispatcher(new TestService()); string responseString = server.Process("{ id : 42, method : 'rev', params : [ [ 1, 'two', 3 ] ] }"); IDictionary response = (IDictionary) Parse(responseString); object[] result = ((JArray) response["result"]).ToArray(); Assert.AreEqual(new object[] { 3, "two", 1 }, result); }
public void CallWithArrayResult() { JsonRpcDispatcher server = new JsonRpcDispatcher(new TestService()); string responseString = server.Process("{ id : 'F9A2CC85-79A2-489f-AE61-84348654008C', method : 'replicate', params : [ 'Hello', 3 ] }"); IDictionary response = (IDictionary) Parse(responseString); Assert.AreEqual("F9A2CC85-79A2-489f-AE61-84348654008C", response["id"]); object[] result = ((JsonArray) response["result"]).ToArray(); Assert.AreEqual(new string[] { "Hello", "Hello", "Hello" }, result); }
public void EchoCall() { EchoService service = new EchoService(); JsonRpcDispatcher server = new JsonRpcDispatcher(service); service.NextResult = "Hello"; string responseString = server.Process("{ id : 1, method : 'Say', params : [ 'Hello' ] }"); IDictionary response = (IDictionary) Parse(responseString); Assert.AreEqual(1, response["id"]); Assert.IsFalse(response.Contains("error")); Assert.AreEqual("Say", service.LastMethodName); Assert.AreEqual(new object[] { "Hello" }, service.LastArguments); Assert.AreEqual("Hello", response["result"]); }
public void CallWithIntArray() { JsonRpcDispatcher server = new JsonRpcDispatcher(new TestService()); string responseString = server.Process("{ id : 42, method : 'sum', params : [ [ 1, 2, 3, 4, 5 ] ] }"); IDictionary response = (IDictionary) Parse(responseString); Assert.AreEqual(15, (int) (JsonNumber) JsonRpcServices.GetResult(response)); }
public void CallWithNamedArgs() { JsonRpcDispatcher server = new JsonRpcDispatcher(new TestService()); string responseString = server.Process("{ id : 42, method : 'replicate', params : { count : 3, text : 'Hello' } }"); IDictionary response = (IDictionary) Parse(responseString); object[] result = ((JsonArray) JsonRpcServices.GetResult(response)).ToArray(); Assert.AreEqual(new string[] { "Hello", "Hello", "Hello" }, result); }
public void NotificationNotSupported() { JsonRpcDispatcher server = new JsonRpcDispatcher(new TestService()); server.Process("{ id : null, method : 'Dummy' }"); }
public void CallWithPositionalArgs() { JsonRpcDispatcher server = new JsonRpcDispatcher(new TestService2()); string responseString = server.Process("{ id : 1, method : 'EchoMany', params : { 0:11,1:12,2:13,3:14,4:15,5:16,6:17,7:18,8:19,9:20,10:21,11:22,12:23,13:24,14:25,15:26,16:27,17:28,18:29,19:30,20:31,21:32,22:33,23:34,24:35,25:36 } }"); IDictionary response = (IDictionary) Parse(responseString); Assert.AreEqual(new int[] { 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36 }, JsonRpcServices.GetResult(response, typeof(int[]))); }
public void PositionNineArgDroppedBug() { JsonRpcDispatcher server = new JsonRpcDispatcher(new TestService2()); string responseString = server.Process("{ id : 1, method : 'Echo', params : { o : 123 } }"); IDictionary response = (IDictionary) Parse(responseString); Assert.AreEqual(123, Convert.ToInt32(JsonRpcServices.GetResult(response))); }
public void CallWithUnknownArgsHarmless() { JsonRpcDispatcher server = new JsonRpcDispatcher(new TestService()); string responseString = server.Process("{ id : 1, method : 'Say', params : { message : 'Hello', bad : 'World' } }"); IDictionary response = (IDictionary) Parse(responseString); Assert.AreEqual("Hello", JsonRpcServices.GetResult(response)); }
public void Bug8320() { // // Bug #8320: Parameter at Dispatcher without method are not handeld // http://developer.berlios.de/bugs/?func=detailbug&bug_id=8320&group_id=4638 // JsonRpcDispatcher server = new JsonRpcDispatcher(new TestService()); string responseString = server.Process("{ id : 42, params : [ [ 1, 2, 3, 4, 5 ] ], method : 'sum' }"); IDictionary response = (IDictionary) Parse(responseString); Assert.AreEqual(15, (int) (JsonNumber) JsonRpcServices.GetResult(response)); }