Skip to content

Commit 51ef609

Browse files
committed
Test case for select expanded query
1 parent 0bb60b0 commit 51ef609

File tree

2 files changed

+42
-0
lines changed

2 files changed

+42
-0
lines changed

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

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -270,5 +270,26 @@ public async Task PlansWithNonParameterizedConstantsAreNotCachedAsync()
270270
Has.Count.EqualTo(0),
271271
"Query plan should not be cached.");
272272
}
273+
274+
[Test]
275+
public async Task PlansWithNonParameterizedConstantsAreNotCachedForExpandedQueryAsync()
276+
{
277+
var queryPlanCacheType = typeof(QueryPlanCache);
278+
279+
var cache = (SoftLimitMRUCache)
280+
queryPlanCacheType
281+
.GetField("planCache", BindingFlags.Instance | BindingFlags.NonPublic)
282+
.GetValue(Sfi.QueryPlanCache);
283+
cache.Clear();
284+
285+
var ids = new[] {"ANATR", "UNKNOWN"}.ToList();
286+
await (db.Customers.Where(x => ids.Contains(x.CustomerId)).Select(
287+
c => new {c.CustomerId, c.ContactName, Constant = 1}).FirstAsync());
288+
289+
Assert.That(
290+
cache,
291+
Has.Count.EqualTo(0),
292+
"Query plan should not be cached.");
293+
}
273294
}
274295
}

src/NHibernate.Test/Linq/ConstantTest.cs

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -313,5 +313,26 @@ public void PlansWithNonParameterizedConstantsAreNotCached()
313313
Has.Count.EqualTo(0),
314314
"Query plan should not be cached.");
315315
}
316+
317+
[Test]
318+
public void PlansWithNonParameterizedConstantsAreNotCachedForExpandedQuery()
319+
{
320+
var queryPlanCacheType = typeof(QueryPlanCache);
321+
322+
var cache = (SoftLimitMRUCache)
323+
queryPlanCacheType
324+
.GetField("planCache", BindingFlags.Instance | BindingFlags.NonPublic)
325+
.GetValue(Sfi.QueryPlanCache);
326+
cache.Clear();
327+
328+
var ids = new[] {"ANATR", "UNKNOWN"}.ToList();
329+
db.Customers.Where(x => ids.Contains(x.CustomerId)).Select(
330+
c => new {c.CustomerId, c.ContactName, Constant = 1}).First();
331+
332+
Assert.That(
333+
cache,
334+
Has.Count.EqualTo(0),
335+
"Query plan should not be cached.");
336+
}
316337
}
317338
}

0 commit comments

Comments
 (0)