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
            });
        }