Skip to content
This repository was archived by the owner on Dec 24, 2022. It is now read-only.

Commit ad73667

Browse files
committed
Add more tests for merging params
1 parent c2275dd commit ad73667

File tree

1 file changed

+28
-8
lines changed

1 file changed

+28
-8
lines changed

tests/ServiceStack.OrmLite.Tests/Issues/MergingNestedSqlExpressionIssue.cs

+28-8
Original file line numberDiff line numberDiff line change
@@ -32,15 +32,35 @@ public void Does_merge_subselect_params_correctly()
3232
ids.Where(x => x.HasA == true && x.HasB == true && x.HasC == true);
3333
ids.SelectDistinct(x => x.OrganizationId);
3434

35-
// select organizations
36-
var expression = OrmLiteConfig.DialectProvider.SqlExpression<Organization>();
37-
// that are active
38-
expression.Where(x => x.IsActive == true);
39-
// and belong to the same group
40-
expression.Where(x => Sql.In(x.Id, ids));
41-
42-
Assert.That(expression.WhereExpression, Is.EqualTo(
35+
//0 params
36+
var q = OrmLiteConfig.DialectProvider.SqlExpression<Organization>();
37+
q.Where(x => Sql.In(x.Id, ids));
38+
Assert.That(q.WhereExpression, Is.EqualTo(
39+
"WHERE \"Id\" IN (SELECT DISTINCT \"OrganizationId\" \nFROM \"OrganizationMembership\"\nWHERE (((\"HasA\" = @0) AND (\"HasB\" = @1)) AND (\"HasC\" = @2)))"));
40+
41+
//1 param
42+
q = OrmLiteConfig.DialectProvider.SqlExpression<Organization>();
43+
q.Where(x => x.IsActive == true);
44+
q.Where(x => Sql.In(x.Id, ids));
45+
Assert.That(q.WhereExpression, Is.EqualTo(
4346
"WHERE (\"IsActive\" = @0) AND \"Id\" IN (SELECT DISTINCT \"OrganizationId\" \nFROM \"OrganizationMembership\"\nWHERE (((\"HasA\" = @1) AND (\"HasB\" = @2)) AND (\"HasC\" = @3)))"));
47+
48+
//2 params
49+
q = OrmLiteConfig.DialectProvider.SqlExpression<Organization>();
50+
q.Where(x => x.IsActive == true);
51+
q.Where(x => x.IsActive == true);
52+
q.Where(x => Sql.In(x.Id, ids));
53+
Assert.That(q.WhereExpression, Is.EqualTo(
54+
"WHERE (\"IsActive\" = @0) AND (\"IsActive\" = @1) AND \"Id\" IN (SELECT DISTINCT \"OrganizationId\" \nFROM \"OrganizationMembership\"\nWHERE (((\"HasA\" = @2) AND (\"HasB\" = @3)) AND (\"HasC\" = @4)))"));
55+
56+
//3 params
57+
q = OrmLiteConfig.DialectProvider.SqlExpression<Organization>();
58+
q.Where(x => x.IsActive == true);
59+
q.Where(x => x.IsActive == true);
60+
q.Where(x => x.IsActive == true);
61+
q.Where(x => Sql.In(x.Id, ids));
62+
Assert.That(q.WhereExpression, Is.EqualTo(
63+
"WHERE (\"IsActive\" = @0) AND (\"IsActive\" = @1) AND (\"IsActive\" = @2) AND \"Id\" IN (SELECT DISTINCT \"OrganizationId\" \nFROM \"OrganizationMembership\"\nWHERE (((\"HasA\" = @3) AND (\"HasB\" = @4)) AND (\"HasC\" = @5)))"));
4464
}
4565
}
4666
}

0 commit comments

Comments
 (0)