|
10 | 10 |
|
11 | 11 | using System;
|
12 | 12 | using System.Collections;
|
| 13 | +using System.Linq; |
13 | 14 | using NHibernate.Criterion;
|
14 | 15 | using NUnit.Framework;
|
15 | 16 |
|
@@ -346,22 +347,39 @@ public async Task HqlInClauseSubquery_ForEntityAsync()
|
346 | 347 | public async Task QueryOverInClauseAsync()
|
347 | 348 | {
|
348 | 349 | // insert the new objects
|
| 350 | + var id1 = id; |
| 351 | + var id2 = secondId; |
| 352 | + var id3 = new Id(id1.KeyString, id1.GetKeyShort(), id2.KeyDateTime); |
| 353 | + |
349 | 354 | using (ISession s = OpenSession())
|
350 | 355 | using (ITransaction t = s.BeginTransaction())
|
351 | 356 | {
|
352 |
| - await (s.SaveAsync(new ClassWithCompositeId(id) {OneProperty = 5})); |
353 |
| - await (s.SaveAsync(new ClassWithCompositeId(secondId) {OneProperty = 10})); |
354 |
| - await (s.SaveAsync(new ClassWithCompositeId(new Id(id.KeyString, id.GetKeyShort(), secondId.KeyDateTime)))); |
| 357 | + await (s.SaveAsync(new ClassWithCompositeId(id1) {OneProperty = 5})); |
| 358 | + await (s.SaveAsync(new ClassWithCompositeId(id2) {OneProperty = 10})); |
| 359 | + await (s.SaveAsync(new ClassWithCompositeId(id3))); |
355 | 360 |
|
356 | 361 | await (t.CommitAsync());
|
357 | 362 | }
|
358 | 363 |
|
359 | 364 | using (var s = OpenSession())
|
360 | 365 | {
|
361 |
| - var results1 = await (s.QueryOver<ClassWithCompositeId>().WhereRestrictionOn(p => p.Id).IsIn(new[] {id, secondId}).ListAsync()); |
362 |
| - var results2 = await (s.QueryOver<ClassWithCompositeId>().WhereRestrictionOn(p => p.Id).IsIn(new[] {id}).ListAsync()); |
363 |
| - Assert.That(results1.Count, Is.EqualTo(2)); |
364 |
| - Assert.That(results2.Count, Is.EqualTo(1)); |
| 366 | + var results1 = await (s.QueryOver<ClassWithCompositeId>().WhereRestrictionOn(p => p.Id).IsIn(new[] {id1, id2}).ListAsync()); |
| 367 | + var results2 = await (s.QueryOver<ClassWithCompositeId>().WhereRestrictionOn(p => p.Id).IsIn(new[] {id1}).ListAsync()); |
| 368 | + var results3 = await (s.QueryOver<ClassWithCompositeId>().WhereRestrictionOn(p => p.Id).Not.IsIn(new[] {id1, id2}).ListAsync()); |
| 369 | + var results4 = await (s.QueryOver<ClassWithCompositeId>().WhereRestrictionOn(p => p.Id).Not.IsIn(new[] {id1}).ListAsync()); |
| 370 | + |
| 371 | + Assert.Multiple( |
| 372 | + () => |
| 373 | + { |
| 374 | + Assert.That(results1.Count, Is.EqualTo(2), "in multiple ids"); |
| 375 | + Assert.That(results1.Select(r => r.Id), Is.EquivalentTo(new[] {id1, id2}), "in multiple ids"); |
| 376 | + Assert.That(results2.Count, Is.EqualTo(1), "in single id"); |
| 377 | + Assert.That(results2.Select(r => r.Id), Is.EquivalentTo(new[] {id1}), "in single id"); |
| 378 | + Assert.That(results3.Count, Is.EqualTo(1), "not in multiple ids"); |
| 379 | + Assert.That(results3.Select(r => r.Id), Is.EquivalentTo(new[] {id3}), "not in multiple ids"); |
| 380 | + Assert.That(results4.Count, Is.EqualTo(2), "not in single id"); |
| 381 | + Assert.That(results4.Select(r => r.Id), Is.EquivalentTo(new[] {id2, id3}), "not in single id"); |
| 382 | + }); |
365 | 383 | }
|
366 | 384 | }
|
367 | 385 | }
|
|
0 commit comments