Skip to content

Commit 71ead29

Browse files
authored
Merge pull request #19 from patricoos/feature/generic_odoo_filter
OdooFilterOfT
2 parents cb8495f + 37d9c1e commit 71ead29

15 files changed

Lines changed: 525 additions & 180 deletions

File tree

PortaCapena.OdooJsonRpcClient.Example/CompanyOdooRepositoryTests.cs

Lines changed: 41 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
using System.Threading.Tasks;
22
using FluentAssertions;
33
using PortaCapena.OdooJsonRpcClient.Consts;
4+
using PortaCapena.OdooJsonRpcClient.Extensions;
5+
using PortaCapena.OdooJsonRpcClient.Request;
46
using PortaCapena.OdooJsonRpcClient.Shared;
57
using PortaCapena.OdooJsonRpcClient.Shared.Models;
68
using Xunit;
@@ -26,6 +28,44 @@ public async Task Get_All()
2628
result.Value.Should().NotBeNull().And.NotBeEmpty();
2729
}
2830

31+
[Fact]
32+
public async Task Get_With_filter()
33+
{
34+
var repo = new CompanyRepository();
35+
36+
var filter = OdooFilter.Create()
37+
.Or()
38+
.EqualTo("name", "My Company (San Francisco)")
39+
.EqualTo("name", "PL Company");
40+
41+
var result = await repo.Query()
42+
.Where(filter)
43+
.ToListAsync();
44+
45+
result.Error.Should().BeNull();
46+
result.Succeed.Should().BeTrue();
47+
result.Value.Should().NotBeNull().And.NotBeEmpty();
48+
}
49+
50+
[Fact]
51+
public async Task Get_With_filter_of_t()
52+
{
53+
var repo = new CompanyRepository();
54+
55+
var filter = OdooFilter<ResCompanyOdooModel>.Create()
56+
.Or()
57+
.EqualTo(x => x.Name, "My Company (San Francisco)")
58+
.EqualTo(x => x.Name, "PL Company");
59+
60+
var result = await repo.Query()
61+
.Where(filter)
62+
.ToListAsync();
63+
64+
result.Error.Should().BeNull();
65+
result.Succeed.Should().BeTrue();
66+
result.Value.Should().NotBeNull().And.NotBeEmpty();
67+
}
68+
2969
[Fact]
3070
public async Task Get_By_Id()
3171
{
@@ -56,7 +96,7 @@ public async Task Get_By_Name()
5696
{
5797
var repo = new CompanyRepository();
5898

59-
var result = await repo.Query().Where(x => x.Name, OdooOperator.EqualsTo, "My Company").FirstOrDefaultAsync();
99+
var result = await repo.Query().Where(x => x.Name, OdooOperator.EqualsTo, "My Company (San Francisco)").FirstOrDefaultAsync();
60100

61101
result.Error.Should().BeNull();
62102
result.Succeed.Should().BeTrue();

PortaCapena.OdooJsonRpcClient.Example/OdooClientTests.cs

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -64,14 +64,12 @@ public async Task Can_get_all_countries()
6464
{
6565
var odoorepository = new OdooRepository<ResCountryOdooModel>(TestConfig);
6666

67-
var products = await odoorepository.Query().Where(x => x.XStudioIsInEu, OdooOperator.EqualsTo, true).ToListAsync();
67+
var products = await odoorepository.Query().ToListAsync();
6868

6969
products.Error.Should().BeNull();
7070
products.Value.Should().NotBeNull();
7171
products.Value.Length.Should().BeGreaterThan(0);
7272
products.Succeed.Should().BeTrue();
73-
74-
var dupa = products.Value.Where(x => x.XStudioIsInEu == true).ToList();
7573
}
7674

7775
[Fact]
@@ -80,7 +78,7 @@ public async Task Get_product_by_Id_test()
8078
var odooClient = new OdooClient(TestConfig);
8179

8280
var query = OdooQuery<ProductProductOdooModel>.Create()
83-
.Where(x => x.Id, OdooOperator.EqualsTo, 303);
81+
.Where(x => x.Id, OdooOperator.EqualsTo, 1);
8482

8583
var products = await odooClient.GetAsync<ProductProductOdooModel>(query);
8684

PortaCapena.OdooJsonRpcClient.Example/OdooRepositoryTests.cs

Lines changed: 9 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,8 @@ public async Task Can_get_product_with_deep_where()
4848
products.Value.Should().NotBeEmpty();
4949
}
5050

51-
[Fact]
51+
[Fact(Skip = "Test for working on Odoo")]
52+
// [Fact]
5253
public async Task Can_get_product_with_deep_secound_level_where()
5354
{
5455
var repository = new OdooRepository<ProductProductOdooModel>(TestConfig);
@@ -68,7 +69,7 @@ public async Task Can_get_products_with_where_and_select()
6869
{
6970
var repository = new OdooRepository<ProductProductOdooModel>(TestConfig);
7071
var products = await repository.Query()
71-
.ById(66)
72+
.ById(1)
7273
.Select(x => new { x.Name })
7374
.FirstOrDefaultAsync();
7475

@@ -77,22 +78,8 @@ public async Task Can_get_products_with_where_and_select()
7778
products.Succeed.Should().BeTrue();
7879
}
7980

80-
[Fact]
81-
public async Task Can_get_all_OdooVoucher()
82-
{
83-
var repository = new OdooRepository<CouponProgramOdooDto>(TestConfig);
84-
85-
var products = await repository.Query()
86-
.SelectSimplifiedModel()
87-
.FirstOrDefaultAsync();
88-
89-
products.Error.Should().BeNull();
90-
products.Value.Should().NotBeNull();
91-
products.Succeed.Should().BeTrue();
92-
}
93-
94-
95-
[Fact]
81+
[Fact(Skip = "Test for working on Odoo")]
82+
// [Fact]
9683
public async Task Can_get_product_with_selected_language_uning_query()
9784
{
9885
var repository = new OdooRepository<ProductProductOdooModel>(TestConfig);
@@ -122,7 +109,8 @@ public async Task Can_get_product_with_selected_language_uning_query()
122109
productWithoutLanguage.Value.Name.Should().NotContain("Dutch");
123110
}
124111

125-
[Fact]
112+
[Fact(Skip = "Test for working on Odoo")]
113+
// [Fact]
126114
public async Task Can_get_product_with_selected_language_using_repository_init()
127115
{
128116
var confing = new OdooConfig(TestConfig.ApiUrl, TestConfig.DbName, TestConfig.UserName, TestConfig.Password, "nl_BE");
@@ -166,7 +154,8 @@ public async Task Can_get_product_with_selected_language_using_repository_init()
166154
product3.Value.Name.Should().Contain("Dutch");
167155
}
168156

169-
[Fact]
157+
[Fact(Skip = "Test for working on Odoo")]
158+
// [Fact]
170159
public async Task Can_get_product_with_selected_language_using_repository_prop()
171160
{
172161
var repository = new OdooRepository<ProductProductOdooModel>(TestConfig);

0 commit comments

Comments
 (0)