public void ParseRequests_MissingVersion_InvalidRequestException() { const string json = "{\"method\": \"datetime\", \"params\": [\"2000-12-15T22:11:03\"], \"id\": \"1\"}"; DefaultRpcParser parser = new DefaultRpcParser(); Assert.Throws <RpcInvalidRequestException>(() => parser.ParseRequests(json)); }
public void ParseRequests_MissingMethod_InvalidRequestException() { const string json = "{\"jsonrpc\": \"2.0\", \"params\": [\"2000-12-15T22:11:03\"], \"id\": \"1\"}"; DefaultRpcParser parser = new DefaultRpcParser(null); Assert.Throws <RpcInvalidRequestException>(() => parser.ParseRequests(json, out bool isBulkRequest)); }
public void ParseRequests_NullRequest_InvalidRequestException() { const string json = null; DefaultRpcParser parser = new DefaultRpcParser(); Assert.Throws <RpcInvalidRequestException>(() => parser.ParseRequests(json)); }
public void ParseRequests_EmptyObjectRequest_InvalidRequestException() { const string json = "{}"; DefaultRpcParser parser = new DefaultRpcParser(null); Assert.Throws <RpcInvalidRequestException>(() => parser.ParseRequests(json, out bool isBulkRequest)); }
public void ParseRequests_ObjectWithArrayParam_NoException() { const string json = "{\"jsonrpc\": \"2.0\", \"id\": 1, \"method\": \"Add7\", \"params\": [[{\"test\":2},{\"test\":3}]]}"; IRpcParser parser = new DefaultRpcParser(new FakeLogger <DefaultRpcParser>(), Options.Create(new RpcServerConfiguration())); ParsingResult result = parser.ParseRequests(json); Assert.NotNull(result); Assert.Equal(1, result.RequestCount); Assert.Single(result.Requests); Assert.Equal("1", result.Requests[0].Id); Assert.Equal("Add7", result.Requests[0].Method); var expectedParams = new Obj[] { new Obj { Test = 2 }, new Obj { Test = 3 } }; ParserTests.CompareParameters(new object[] { expectedParams }, result.Requests[0].Parameters); Assert.False(result.IsBulkRequest); }
public void ParseRequests_MissingId_NoException() { const string json = "{\"method\": \"datetime\", \"jsonrpc\": \"2.0\", \"params\": [\"2000-12-15T22:11:03\"]}"; DefaultRpcParser parser = new DefaultRpcParser(); parser.ParseRequests(json); }
public void ParseRequests_MissingParams_NoException() { const string json = "{\"method\": \"datetime\",\"jsonrpc\": \"2.0\", \"id\": \"1\"}"; DefaultRpcParser parser = new DefaultRpcParser(); parser.ParseRequests(json); }
public void ParseRequests_DuplicateIds_InvalidRequestException() { const string json = "[{\"jsonrpc\": \"2.0\", \"method\": \"one\", \"params\": [\"1\"], \"id\": \"1\"}, {\"jsonrpc\": \"2.0\", \"method\": \"two\", \"params\": [\"2\"], \"id\": \"1\"}]"; DefaultRpcParser parser = new DefaultRpcParser(null); Assert.ThrowsAny <RpcInvalidRequestException>(() => parser.ParseRequests(json, out bool isBulkRequest)); }
public void ParseRequests_MissingId_NoException() { const string json = "{\"method\": \"datetime\", \"jsonrpc\": \"2.0\", \"params\": [\"2000-12-15T22:11:03\"]}"; DefaultRpcParser parser = new DefaultRpcParser(null); parser.ParseRequests(json, out bool isBulkRequest); Assert.False(isBulkRequest); }
public void ParseRequests_MissingParams_NoException() { const string json = "{\"method\": \"datetime\",\"jsonrpc\": \"2.0\", \"id\": \"1\"}"; DefaultRpcParser parser = new DefaultRpcParser(null); parser.ParseRequests(json, out bool isBulkRequest); Assert.False(isBulkRequest); }
public void ParseRequests_NullRequest_InvalidRequestException() { const string json = null; DefaultRpcParser parser = new DefaultRpcParser(null, Options.Create(new RpcServerConfiguration())); var ex = Assert.Throws <RpcException>(() => parser.ParseRequests(json)); Assert.Equal((int)RpcErrorCode.InvalidRequest, ex.ErrorCode); }
public void ParseRequests_NullRequest_InvalidRequestException() { const string?json = null; IRpcParser parser = new DefaultRpcParser(new FakeLogger <DefaultRpcParser>(), Options.Create(new RpcServerConfiguration())); #pragma warning disable CS8625 // Cannot convert null literal to non-nullable reference type. var ex = Assert.Throws <RpcException>(() => parser.ParseRequests(json)); #pragma warning restore CS8625 // Cannot convert null literal to non-nullable reference type. Assert.Equal((int)RpcErrorCode.InvalidRequest, ex.ErrorCode); }
public void ParseRequests_DuplicateIds_InvalidRequestException() { const string json = "[{\"jsonrpc\": \"2.0\", \"method\": \"one\", \"params\": [\"1\"], \"id\": \"1\"}, {\"jsonrpc\": \"2.0\", \"method\": \"two\", \"params\": [\"2\"], \"id\": \"1\"}]"; DefaultRpcParser parser = new DefaultRpcParser(null, Options.Create(new RpcServerConfiguration())); var ex = Assert.Throws <RpcException>(() => parser.ParseRequests(json)); Assert.Equal((int)RpcErrorCode.InvalidRequest, ex.ErrorCode); }
public void ParseRequests_Valid(string json, object id, string method, object[] parameters) { DefaultRpcParser parser = new DefaultRpcParser(); RpcRequest rpcRequest = parser.ParseRequests(json).FirstOrDefault(); Assert.NotNull(rpcRequest); Assert.Equal(rpcRequest.Id, id); Assert.Equal(rpcRequest.Method, method); Assert.Equal(rpcRequest.JsonRpcVersion, JsonRpcContants.JsonRpcVersion); Assert.Equal(rpcRequest.ParameterList, parameters); }
public void ParseRequests_Valid(string json, object id, string method, object[] parameters) { DefaultRpcParser parser = new DefaultRpcParser(null); RpcRequest rpcRequest = parser.ParseRequests(json, out bool isBulkRequest).FirstOrDefault(); Assert.NotNull(rpcRequest); ParserTests.CompareId(id, rpcRequest.Id); Assert.Equal(method, rpcRequest.Method); Assert.Equal(JsonRpcContants.JsonRpcVersion, rpcRequest.JsonRpcVersion); ParserTests.CompareParameters(parameters, rpcRequest.Parameters); Assert.False(isBulkRequest); }
public void MatchesRpcRoute_DifferentRoutes_Valid(string requestUrl, string availableRouteName, bool shouldMatch) { IRpcRouteProvider routeProvider = new FakeRouteProvider(); RouteCriteria routeCriteria = new RouteCriteria(typeof(ParserTests)); routeProvider.RegisterRoute(routeCriteria, availableRouteName); DefaultRpcParser parser = new DefaultRpcParser(null); RpcRoute matchedRoute; bool isMatch = parser.MatchesRpcRoute(routeProvider, requestUrl, out matchedRoute); Assert.Equal(isMatch, shouldMatch); Assert.Equal(matchedRoute != null, shouldMatch); }
public void ParseRequests_DateTime_Valid() { const string json = "{\"jsonrpc\": \"2.0\", \"method\": \"datetime\", \"params\": [\"2000-12-15T22:11:03\"], \"id\": 1}"; DateTime dateTime = DateTime.Parse("2000-12-15T22:11:03"); DefaultRpcParser parser = new DefaultRpcParser(); RpcRequest rpcRequest = parser.ParseRequests(json).FirstOrDefault(); Assert.NotNull(rpcRequest); Assert.Equal(rpcRequest.Id, (long)1); Assert.Equal(rpcRequest.Method, "datetime"); Assert.Equal(rpcRequest.JsonRpcVersion, JsonRpcContants.JsonRpcVersion); Assert.Equal(rpcRequest.ParameterList, new object[] { dateTime }); }
public void ParseRequests_Valid(string json, object id, string method, object[] parameters) { DefaultRpcParser parser = new DefaultRpcParser(null, Options.Create(new RpcServerConfiguration())); ParsingResult result = parser.ParseRequests(json); Assert.NotNull(result); Assert.Equal(1, result.RequestCount); Assert.Single(result.Requests); Assert.Equal(RpcId.FromObject(id), result.Requests[0].Id); Assert.Equal(method, result.Requests[0].Method); ParserTests.CompareParameters(parameters, result.Requests[0].Parameters); Assert.False(result.IsBulkRequest); }
public void ParseRequests_EmptyObjectRequest_InvalidRequestException() { const string json = "{}"; DefaultRpcParser parser = new DefaultRpcParser(null, Options.Create(new RpcServerConfiguration())); ParsingResult result = parser.ParseRequests(json); Assert.NotNull(result); Assert.Equal(1, result.RequestCount); Assert.Single(result.Errors); Assert.Equal(default(RpcId), result.Errors[0].Id); Assert.NotNull(result.Errors[0].Error); Assert.Equal((int)RpcErrorCode.InvalidRequest, result.Errors[0].Error.Code); Assert.False(result.IsBulkRequest); }
public void ParseRequests_MissingMethod_InvalidRequestException() { const string json = "{\"jsonrpc\": \"2.0\", \"params\": [\"2000-12-15T22:11:03\"], \"id\": \"1\"}"; DefaultRpcParser parser = new DefaultRpcParser(null, Options.Create(new RpcServerConfiguration())); ParsingResult result = parser.ParseRequests(json); Assert.NotNull(result); Assert.Equal(1, result.RequestCount); Assert.Single(result.Errors); Assert.Equal("1", result.Errors[0].Id); Assert.NotNull(result.Errors[0].Error); Assert.Equal((int)RpcErrorCode.InvalidRequest, result.Errors[0].Error.Code); Assert.False(result.IsBulkRequest); }
public void ParseRequests_MissingId_NoException() { const string json = "{\"method\": \"datetime\", \"jsonrpc\": \"2.0\", \"params\": [\"2000-12-15T22:11:03\"]}"; DefaultRpcParser parser = new DefaultRpcParser(null, Options.Create(new RpcServerConfiguration())); ParsingResult result = parser.ParseRequests(json); Assert.NotNull(result); Assert.Equal(1, result.RequestCount); Assert.Single(result.Requests); Assert.Equal(default(RpcId), result.Requests[0].Id); Assert.Equal("datetime", result.Requests[0].Method); ParserTests.CompareParameters(new object[] { "2000-12-15T22:11:03" }, result.Requests[0].Parameters); Assert.False(result.IsBulkRequest); }
public void ParseRequests_DateTime_Valid() { const string json = "{\"jsonrpc\": \"2.0\", \"method\": \"datetime\", \"params\": [\"2000-12-15T22:11:03\"], \"id\": 1}"; DateTime dateTime = DateTime.Parse("2000-12-15T22:11:03"); DefaultRpcParser parser = new DefaultRpcParser(null); RpcRequest rpcRequest = parser.ParseRequests(json, out bool isBulkRequest).FirstOrDefault(); Assert.NotNull(rpcRequest); ParserTests.CompareId(1, rpcRequest.Id); Assert.Equal("datetime", rpcRequest.Method); Assert.Equal(JsonRpcContants.JsonRpcVersion, rpcRequest.JsonRpcVersion); ParserTests.CompareParameters(new object[] { dateTime }, rpcRequest.Parameters); Assert.False(isBulkRequest); }
public void ParseRequests_MissingParams_NoException() { const string json = "{\"method\": \"datetime\",\"jsonrpc\": \"2.0\", \"id\": \"1\"}"; DefaultRpcParser parser = new DefaultRpcParser(null, Options.Create(new RpcServerConfiguration())); ParsingResult result = parser.ParseRequests(json); Assert.NotNull(result); Assert.Equal(1, result.RequestCount); Assert.Single(result.Requests); Assert.Equal("1", result.Requests[0].Id); Assert.Equal("datetime", result.Requests[0].Method); Assert.Equal(default(RpcParameters), result.Requests[0].Parameters); Assert.False(result.IsBulkRequest); }
public void MatchesRpcRoute_DifferentRoutes_Valid(string requestUrl, string availableRouteName, bool shouldMatch) { RpcRoute route = new RpcRoute(availableRouteName); RpcRouteCollection routes = new RpcRouteCollection { route }; DefaultRpcParser parser = new DefaultRpcParser(); RpcRoute matchedRoute; bool isMatch = parser.MatchesRpcRoute(routes, requestUrl, out matchedRoute); Assert.Equal(isMatch, shouldMatch); Assert.Equal(matchedRoute != null, shouldMatch); Assert.Equal(route == matchedRoute, shouldMatch); }
public void RpcRouteWithBaseRoute_NoBaseRoute_Failure() { IRpcRouteProvider routeProvider = new FakeRouteProvider(); routeProvider.BaseRequestPath = "Base"; RouteCriteria routeCriteria = new RouteCriteria(typeof(ParserTests)); routeProvider.RegisterRoute(routeCriteria, "Test"); DefaultRpcParser parser = new DefaultRpcParser(null); RpcRoute matchedRoute; bool isMatch = parser.MatchesRpcRoute(routeProvider, "/Test", out matchedRoute); Assert.False(isMatch); Assert.Null(matchedRoute); }
public void ParseRequests_SingleBatchRequest_Valid() { const string json = "[{\"jsonrpc\": \"2.0\", \"method\": \"one\", \"params\": [\"1\"], \"id\": \"1\"}]"; DefaultRpcParser parser = new DefaultRpcParser(null, Options.Create(new RpcServerConfiguration())); ParsingResult result = parser.ParseRequests(json); Assert.NotNull(result); Assert.Equal(1, result.RequestCount); Assert.Single(result.Requests); Assert.Equal("1", result.Requests[0].Id); Assert.Equal("one", result.Requests[0].Method); ParserTests.CompareParameters(new object[] { "1" }, result.Requests[0].Parameters); Assert.True(result.IsBulkRequest); }
public void ParseRequests_SingleBatchRequest_Valid() { const string json = "[{\"jsonrpc\": \"2.0\", \"method\": \"one\", \"params\": [\"1\"], \"id\": \"1\"}]"; DefaultRpcParser parser = new DefaultRpcParser(null); List <RpcRequest> rpcRequests = parser.ParseRequests(json, out bool isBulkRequest); Assert.NotNull(rpcRequests); Assert.Single(rpcRequests); ParserTests.CompareId("1", rpcRequests[0].Id); Assert.Equal("one", rpcRequests[0].Method); Assert.Equal(JsonRpcContants.JsonRpcVersion, rpcRequests[0].JsonRpcVersion); ParserTests.CompareParameters(new object[] { "1" }, rpcRequests[0].Parameters); Assert.True(isBulkRequest); }
public void ParseRequests_DateTime_Valid() { const string json = "{\"jsonrpc\": \"2.0\", \"method\": \"datetime\", \"params\": [\"2000-12-15T22:11:03\"], \"id\": 1}"; DateTime dateTime = DateTime.Parse("2000-12-15T22:11:03"); IRpcParser parser = new DefaultRpcParser(new FakeLogger <DefaultRpcParser>(), Options.Create(new RpcServerConfiguration())); ParsingResult result = parser.ParseRequests(json); Assert.NotNull(result); Assert.Equal(1, result.RequestCount); Assert.Single(result.Requests); Assert.Equal(1, result.Requests[0].Id); Assert.Equal("datetime", result.Requests[0].Method); ParserTests.CompareParameters(new object[] { dateTime }, result.Requests[0].Parameters); Assert.False(result.IsBulkRequest); }
public void ParseRequests_ObjectParam_NoException() { const string json = "{\"method\": \"obj\", \"jsonrpc\": \"2.0\", \"params\": [{\"test\":1}], \"id\": \"1\"}"; IRpcParser parser = new DefaultRpcParser(new FakeLogger <DefaultRpcParser>(), Options.Create(new RpcServerConfiguration())); ParsingResult result = parser.ParseRequests(json); Assert.NotNull(result); Assert.Equal(1, result.RequestCount); Assert.Single(result.Requests); Assert.Equal("1", result.Requests[0].Id); Assert.Equal("obj", result.Requests[0].Method); ParserTests.CompareParameters(new object[] { new Obj { Test = 1 } }, result.Requests[0].Parameters); Assert.False(result.IsBulkRequest); }
public void ParseRequests_SingleBatchRequest_Valid() { const string json = "[{\"jsonrpc\": \"2.0\", \"method\": \"one\", \"params\": [\"1\"], \"id\": \"1\"}]"; DefaultRpcParser parser = new DefaultRpcParser(null); bool isBulkRequest; List <RpcRequest> rpcRequests = parser.ParseRequests(json, out isBulkRequest); Assert.NotNull(rpcRequests); Assert.Equal(rpcRequests.Count, 1); Assert.Equal(rpcRequests[0].Id, "1"); Assert.Equal(rpcRequests[0].Method, "one"); Assert.Equal(rpcRequests[0].JsonRpcVersion, JsonRpcContants.JsonRpcVersion); Assert.Equal(rpcRequests[0].ParameterList, new object[] { "1" }); Assert.True(isBulkRequest); }