Skip to content

Commit e61f097

Browse files
author
Lodewijk Sioen
committed
Only add the test from the original issue
1 parent 683286b commit e61f097

File tree

2 files changed

+36
-78
lines changed

2 files changed

+36
-78
lines changed

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

Lines changed: 33 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,8 @@
1212
using System.Collections.Generic;
1313
using System.Linq;
1414
using NHibernate.DomainModel.Northwind.Entities;
15-
using NUnit.Framework;
1615
using NHibernate.Linq;
16+
using NUnit.Framework;
1717

1818
namespace NHibernate.Test.Linq
1919
{
@@ -223,23 +223,24 @@ public async Task CanProjectManyCollectionsAsync()
223223
var result = await (query.ToListAsync());
224224
Assert.That(result.Count, Is.EqualTo(2155));
225225
}
226-
226+
227227
[Test]
228228
public async Task CanProjectCollectionsAsync()
229229
{
230230
var query = db.Orders.Select(o => o.OrderLines);
231231
var result = await (query.ToListAsync());
232232
Assert.That(result.Count, Is.EqualTo(830));
233233
}
234-
234+
235235
[Test]
236236
public async Task CanProjectCollectionsInsideAnonymousTypeAsync()
237237
{
238238
var query = db.Orders.Select(o => new { o.OrderId, o.OrderLines });
239239
var result = await (query.ToListAsync());
240+
Assert.That(NHibernateUtil.IsInitialized(result[0].OrderLines), Is.True);
240241
Assert.That(result.Count, Is.EqualTo(830));
241242
}
242-
243+
243244
[Test]
244245
public async Task ProjectAnonymousTypeWithCollectionAsync()
245246
{
@@ -250,6 +251,7 @@ public async Task ProjectAnonymousTypeWithCollectionAsync()
250251

251252
var result = await (query.ToListAsync());
252253
Assert.That(result.Count, Is.EqualTo(830));
254+
Assert.That(NHibernateUtil.IsInitialized(result[0].OrderLines), Is.True);
253255
Assert.That(result[0].o.OrderLines, Is.EquivalentTo(result[0].OrderLines));
254256
}
255257

@@ -263,6 +265,7 @@ public async Task ProjectAnonymousTypeWithCollection1Async()
263265

264266
var result = await (query.ToListAsync());
265267
Assert.That(result.Count, Is.EqualTo(830));
268+
Assert.That(NHibernateUtil.IsInitialized(result[0].OrderLines), Is.True);
266269
Assert.That(result[0].o.OrderLines, Is.EquivalentTo(result[0].OrderLines));
267270
}
268271

@@ -275,6 +278,7 @@ public async Task ProjectAnonymousTypeWithCollection2Async()
275278
select new { o.OrderLines, A = 1, B = 2 };
276279

277280
var result = await (query.ToListAsync());
281+
Assert.That(NHibernateUtil.IsInitialized(result[0].OrderLines), Is.True);
278282
Assert.That(result.Count, Is.EqualTo(830));
279283
}
280284

@@ -287,6 +291,7 @@ public async Task ProjectAnonymousTypeWithCollection3Async()
287291
select new { OrderLines = o.OrderLines.ToList() };
288292

289293
var result = await (query.ToListAsync());
294+
Assert.That(NHibernateUtil.IsInitialized(result[0].OrderLines), Is.True);
290295
Assert.That(result.Count, Is.EqualTo(830));
291296
}
292297

@@ -304,9 +309,32 @@ public async Task ProjectKnownTypeWithCollectionAsync()
304309

305310
var result = await (query.ToListAsync());
306311
Assert.That(result.Count, Is.EqualTo(830));
312+
Assert.That(NHibernateUtil.IsInitialized(result[0].ExpandedElement.OrderLines), Is.False);
313+
Assert.That(NHibernateUtil.IsInitialized(result[0].ProjectedProperty0), Is.True);
307314
Assert.That(result[0].ExpandedElement.OrderLines, Is.EquivalentTo(result[0].ProjectedProperty0));
308315
}
309-
316+
317+
[Test]
318+
public async Task ProjectKnownTypeWithCollectionWithFetchAsync()
319+
{
320+
// NH-3396
321+
// However, due to a double join on Orderlines, this query has 7000+ results
322+
var query = from o in db.Orders.Fetch(x => x.OrderLines)
323+
select new ExpandedWrapper<Order, ISet<OrderLine>>
324+
{
325+
ExpandedElement = o,
326+
ProjectedProperty0 = o.OrderLines,
327+
Description = "OrderLine",
328+
ReferenceDescription = "OrderLine"
329+
};
330+
331+
var result = await (query.ToListAsync());
332+
Assert.That(result.Count, Is.EqualTo(830));
333+
Assert.That(NHibernateUtil.IsInitialized(result[0].ExpandedElement.OrderLines), Is.True);
334+
Assert.That(NHibernateUtil.IsInitialized(result[0].ProjectedProperty0), Is.True);
335+
Assert.That(result[0].ExpandedElement.OrderLines, Is.EquivalentTo(result[0].ProjectedProperty0));
336+
}
337+
310338
[Test]
311339
public async Task ProjectKnownTypeWithCollection2Async()
312340
{

src/NHibernate.Test/Linq/ProjectionsTests.cs

Lines changed: 3 additions & 73 deletions
Original file line numberDiff line numberDiff line change
@@ -213,30 +213,14 @@ public void CanProjectManyCollections()
213213
Assert.That(result.Count, Is.EqualTo(2155));
214214
}
215215

216-
[Test]
217-
public void CanProjectManyCollectionsWithFetch()
218-
{
219-
var query = db.Orders.FetchMany(o => o.OrderLines).SelectMany(o => o.OrderLines);
220-
var result = query.ToList();
221-
Assert.That(result.Count, Is.EqualTo(2155));
222-
}
223-
224216
[Test]
225217
public void CanProjectCollections()
226218
{
227219
var query = db.Orders.Select(o => o.OrderLines);
228220
var result = query.ToList();
229221
Assert.That(result.Count, Is.EqualTo(830));
230222
}
231-
232-
[Test]
233-
public void CanProjectCollectionsWithFetch()
234-
{
235-
var query = db.Orders.Fetch(o => o.OrderLines).Select(o => o.OrderLines);
236-
var result = query.ToList();
237-
Assert.That(result.Count, Is.EqualTo(830));
238-
}
239-
223+
240224
[Test]
241225
public void CanProjectCollectionsInsideAnonymousType()
242226
{
@@ -245,16 +229,7 @@ public void CanProjectCollectionsInsideAnonymousType()
245229
Assert.That(NHibernateUtil.IsInitialized(result[0].OrderLines), Is.True);
246230
Assert.That(result.Count, Is.EqualTo(830));
247231
}
248-
249-
[Test]
250-
public void CanProjectCollectionsInsideAnonymousTypeWithFetch()
251-
{
252-
var query = db.Orders.Fetch(o => o.OrderLines).Select(o => new { o.OrderId, o.OrderLines });
253-
var result = query.ToList();
254-
Assert.That(NHibernateUtil.IsInitialized(result[0].OrderLines), Is.True);
255-
Assert.That(result.Count, Is.EqualTo(830));
256-
}
257-
232+
258233
[Test]
259234
public void ProjectAnonymousTypeWithCollection()
260235
{
@@ -269,18 +244,6 @@ public void ProjectAnonymousTypeWithCollection()
269244
Assert.That(result[0].o.OrderLines, Is.EquivalentTo(result[0].OrderLines));
270245
}
271246

272-
[Test]
273-
public void ProjectAnonymousTypeWithCollectionWithFetch()
274-
{
275-
var query = from o in db.Orders.Fetch(o => o.OrderLines)
276-
select new { o, o.OrderLines };
277-
278-
var result = query.ToList();
279-
Assert.That(result.Count, Is.EqualTo(830));
280-
Assert.That(NHibernateUtil.IsInitialized(result[0].OrderLines), Is.True);
281-
Assert.That(result[0].o.OrderLines, Is.EquivalentTo(result[0].OrderLines));
282-
}
283-
284247
[Test]
285248
public void ProjectAnonymousTypeWithCollection1()
286249
{
@@ -295,18 +258,6 @@ public void ProjectAnonymousTypeWithCollection1()
295258
Assert.That(result[0].o.OrderLines, Is.EquivalentTo(result[0].OrderLines));
296259
}
297260

298-
[Test]
299-
public void ProjectAnonymousTypeWithCollection1WithFetch()
300-
{
301-
var query = from o in db.Orders.Fetch(o => o.OrderLines)
302-
select new { o.OrderLines, o };
303-
304-
var result = query.ToList();
305-
Assert.That(result.Count, Is.EqualTo(830));
306-
Assert.That(NHibernateUtil.IsInitialized(result[0].OrderLines), Is.True);
307-
Assert.That(result[0].o.OrderLines, Is.EquivalentTo(result[0].OrderLines));
308-
}
309-
310261
[Test]
311262
public void ProjectAnonymousTypeWithCollection2()
312263
{
@@ -320,17 +271,6 @@ public void ProjectAnonymousTypeWithCollection2()
320271
Assert.That(result.Count, Is.EqualTo(830));
321272
}
322273

323-
[Test]
324-
public void ProjectAnonymousTypeWithCollection2WithFetch()
325-
{
326-
var query = from o in db.Orders.Fetch(o => o.OrderLines)
327-
select new { o.OrderLines, A = 1, B = 2 };
328-
329-
var result = query.ToList();
330-
Assert.That(NHibernateUtil.IsInitialized(result[0].OrderLines), Is.True);
331-
Assert.That(result.Count, Is.EqualTo(830));
332-
}
333-
334274
[Test]
335275
public void ProjectAnonymousTypeWithCollection3()
336276
{
@@ -344,17 +284,6 @@ public void ProjectAnonymousTypeWithCollection3()
344284
Assert.That(result.Count, Is.EqualTo(830));
345285
}
346286

347-
[Test]
348-
public void ProjectAnonymousTypeWithCollection3WithFetch()
349-
{
350-
var query = from o in db.Orders.Fetch(o => o.OrderLines)
351-
select new { OrderLines = o.OrderLines.ToList() };
352-
353-
var result = query.ToList();
354-
Assert.That(NHibernateUtil.IsInitialized(result[0].OrderLines), Is.True);
355-
Assert.That(result.Count, Is.EqualTo(830));
356-
}
357-
358287
[Test]
359288
public void ProjectKnownTypeWithCollection()
360289
{
@@ -378,6 +307,7 @@ public void ProjectKnownTypeWithCollection()
378307
public void ProjectKnownTypeWithCollectionWithFetch()
379308
{
380309
// NH-3396
310+
// However, due to a double join on Orderlines, this query has 7000+ results
381311
var query = from o in db.Orders.Fetch(x => x.OrderLines)
382312
select new ExpandedWrapper<Order, ISet<OrderLine>>
383313
{

0 commit comments

Comments
 (0)