public async Task Get_WithIds_ShouldCallRpcWithCorrectParameters() { var requestParameters = new OdooGetParameters("res.partner", new long[] { 7 }); var testPartner = new TestPartner() { comment = false, country_id = new object[] { 21, "Belgium" }, id = 7, name = "Agrolait" }; var response = new JsonRpcResponse <TestPartner[]>(); response.Id = 1; response.Result = new TestPartner[] { testPartner }; await TestOdooRpcCall(new OdooRpcCallTestParameters <TestPartner[]>() { Validator = (p) => { Assert.Equal(6, p.args.Length); dynamic args = p.args[5]; Assert.Equal(1, args.Length); Assert.Equal(requestParameters.Ids, args[0]); }, Model = requestParameters.Model, Method = "read", ExecuteRpcCall = () => RpcClient.Get <TestPartner[]>(requestParameters), TestResponse = response }); }
public async Task Get_WithSearch_And_Fields_And_Pagination_ShouldCallRpcWithCorrectParameters() { var requestParameters = new OdooSearchParameters( "res.partner", new OdooDomainFilter() .Filter("is_company", "=", true) .Filter("customer", "=", true) ); var testPartners = new TestPartner[] { new TestPartner() { comment = false, country_id = new object[] { 21, "Belgium" }, id = 7, name = "Agrolait" }, new TestPartner() { comment = false, country_id = new object[] { 21, "Belgium" }, id = 8, name = "Parmalait" } }; var response = new JsonRpcResponse <TestPartner[]>(); response.Id = 1; response.Result = testPartners; await TestOdooRpcCall(new OdooRpcCallTestParameters <TestPartner[]>() { Validator = (p) => { Assert.Equal(7, p.args.Length); dynamic args = p.args[5]; Assert.Equal(2, args[0].Length); Assert.Equal( new object[] { new object[] { "is_company", "=", true }, new object[] { "customer", "=", true } }, args[0] ); dynamic searchArgs = p.args[6]; Assert.Equal(0, searchArgs.offset); Assert.Equal(5, searchArgs.limit); Assert.Equal(new string[] { "name", "country_id", "comment" }, searchArgs.fields); }, Model = requestParameters.Model, Method = "search_read", ExecuteRpcCall = () => RpcClient.Get <TestPartner[]>(requestParameters, new OdooFieldParameters(new string[] { "name", "country_id", "comment" }), new OdooPaginationParameters(0, 5)), TestResponse = response }); }