Skip to content

Commit 2dfb7a3

Browse files
committed
More tests for Contains and Any
1 parent 59284c3 commit 2dfb7a3

File tree

2 files changed

+53
-0
lines changed

2 files changed

+53
-0
lines changed

src/NHibernate.Test/Async/Linq/WhereSubqueryTests.cs

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -465,6 +465,22 @@ where subquery.Any(x => x.OrderId == order.OrderId)
465465
Assert.That(query.Count, Is.EqualTo(61));
466466
}
467467

468+
[Test(Description = "GH2479")]
469+
public async Task OrdersWithSubquery11Async()
470+
{
471+
var ordersQuery = db.Orders
472+
.OrderByDescending(x => x.OrderLines.Count).ThenBy(x => x.OrderId)
473+
.Take(2);
474+
475+
var orderLineQuery = ordersQuery.SelectMany(x => x.OrderLines);
476+
var productsNotInLargestOrders = await (db.Products
477+
.Where(x => orderLineQuery.All(p => p.Product != x))
478+
.OrderBy(x => x.ProductId)
479+
.ToListAsync());
480+
481+
Assert.That(productsNotInLargestOrders.Count, Is.EqualTo(49), nameof(productsNotInLargestOrders));
482+
}
483+
468484
[Test(Description = "NH-2654")]
469485
public async Task CategoriesWithDiscountedProductsAsync()
470486
{

src/NHibernate.Test/Linq/WhereSubqueryTests.cs

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -530,6 +530,43 @@ public void OrdersWithSubquery9()
530530
Assert.That(orderLines.Count, Is.EqualTo(6), nameof(orderLines));
531531
}
532532

533+
[Test(Description = "GH2479")]
534+
public void OrdersWithSubquery10()
535+
{
536+
var ordersQuery = db.Orders
537+
.Where(x => x.Employee.EmployeeId > 5)
538+
.OrderBy(x => x.OrderId)
539+
.Take(2);
540+
541+
var productsQuery = ordersQuery.SelectMany(x => x.OrderLines).Select(x => x.Product);
542+
var productsFuture = db.Products
543+
.Where(x => productsQuery.Contains(x))
544+
.OrderBy(x => x.ProductId)
545+
.ToFuture();
546+
547+
var orders = ordersQuery.ToFuture().ToList();
548+
var products = productsFuture.ToList();
549+
550+
Assert.That(orders.Count, Is.EqualTo(2), nameof(orders));
551+
Assert.That(products.Count, Is.EqualTo(6), nameof(products));
552+
}
553+
554+
[Test(Description = "GH2479")]
555+
public void OrdersWithSubquery11()
556+
{
557+
var ordersQuery = db.Orders
558+
.OrderByDescending(x => x.OrderLines.Count).ThenBy(x => x.OrderId)
559+
.Take(2);
560+
561+
var orderLineQuery = ordersQuery.SelectMany(x => x.OrderLines);
562+
var productsNotInLargestOrders = db.Products
563+
.Where(x => orderLineQuery.All(p => p.Product != x))
564+
.OrderBy(x => x.ProductId)
565+
.ToList();
566+
567+
Assert.That(productsNotInLargestOrders.Count, Is.EqualTo(49), nameof(productsNotInLargestOrders));
568+
}
569+
533570
[Test(Description = "NH-2654")]
534571
public void CategoriesWithDiscountedProducts()
535572
{

0 commit comments

Comments
 (0)