Skip to content

Commit 3c6f503

Browse files
committed
FirstSingleTest: Separate test case for SQLite
SQLite allows to have more than one row in result of subquery which is a column of main query
1 parent 2edb542 commit 3c6f503

1 file changed

Lines changed: 12 additions & 1 deletion

File tree

Orm/Xtensive.Orm.Tests/Linq/FirstSingleTest.cs

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
using NUnit.Framework;
1010
using Xtensive.Orm.Tests;
1111
using Xtensive.Orm.Linq;
12+
using Xtensive.Orm.Providers;
1213
using Xtensive.Orm.Tests.ObjectModel;
1314
using Xtensive.Orm.Tests.ObjectModel.ChinookDO;
1415

@@ -213,6 +214,16 @@ public void SubquerySingleTest()
213214
Assert.AreEqual(customersCount, list.Count);
214215
}
215216

217+
[Test]
218+
public void SubquerySingleSQLiteTest()
219+
{
220+
Require.ProviderIs(StorageProvider.Sqlite, "SQLite allows to have more that one row in result of subquery that represents column.");
221+
var customersCount = Session.Query.All<Customer>().Count(c => c.Invoices.Count > 0);
222+
var result = Session.Query.All<Customer>().Where(c => c.Invoices.Count > 0).Select(c => c.Invoices.Single());
223+
var list = result.ToList();
224+
Assert.AreEqual(customersCount, list.Count);
225+
}
226+
216227
[Test]
217228
public void SubquerySingleExpectedException1Test()
218229
{
@@ -224,7 +235,7 @@ public void SubquerySingleExpectedException1Test()
224235
[Test]
225236
public void SubquerySingleExpectedException2Test()
226237
{
227-
Require.ProviderIsNot(StorageProvider.SqlServerCe);
238+
Require.ProviderIsNot(StorageProvider.SqlServerCe | StorageProvider.Sqlite);
228239
var exceptionThrown = false;
229240
var result = Session.Query.All<Customer>().Where(c => c.Invoices.Count > 0).Select(c => c.Invoices.Single());
230241
try {

0 commit comments

Comments
 (0)