Skip to content

Commit b031a6d

Browse files
Generate async files
1 parent aaf7810 commit b031a6d

File tree

4 files changed

+215
-24
lines changed

4 files changed

+215
-24
lines changed
Lines changed: 155 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,155 @@
1+
//------------------------------------------------------------------------------
2+
// <auto-generated>
3+
// This code was generated by AsyncGenerator.
4+
//
5+
// Changes to this file may cause incorrect behavior and will be lost if
6+
// the code is regenerated.
7+
// </auto-generated>
8+
//------------------------------------------------------------------------------
9+
10+
11+
using System;
12+
using NHibernate.Criterion;
13+
using NHibernate.Transform;
14+
using NUnit.Framework;
15+
16+
namespace NHibernate.Test.NHSpecificTest.NH750
17+
{
18+
using System.Threading.Tasks;
19+
[TestFixture(0)]
20+
[TestFixture(1)]
21+
[TestFixture(2)]
22+
public class ManyToManyFixtureAsync : BugTestCase
23+
{
24+
private int id2;
25+
private readonly int _drivesCount;
26+
private int _withTempalteId;
27+
private int ValidDrivesCount => _drivesCount;
28+
29+
public ManyToManyFixtureAsync(int drivesCount)
30+
{
31+
_drivesCount = drivesCount;
32+
}
33+
34+
protected override void OnSetUp()
35+
{
36+
Drive dr1 = new Drive("Drive 1");
37+
Drive dr2 = new Drive("Drive 2");
38+
Drive dr3 = new Drive("Drive 3");
39+
Device dv1 = new Device("Device 1");
40+
Device dv2 = new Device("Device 2");
41+
var withTempalte = new Device("Device With Device 2 template") { Template = dv2 };
42+
using var s = Sfi.OpenSession();
43+
using var t = s.BeginTransaction();
44+
s.Save(dr1);
45+
s.Save(dr2);
46+
s.Save(dr3);
47+
AddDrive(dv1, dr2);
48+
AddDrive(dv1, dr1);
49+
AddDrive(dv2, dr3);
50+
AddDrive(dv2, dr1);
51+
52+
s.Save(dv1);
53+
id2 = (int) s.Save(dv2);
54+
_withTempalteId = (int)s.Save(withTempalte);
55+
t.Commit();
56+
}
57+
58+
private void AddDrive(Device dv, Drive drive)
59+
{
60+
if(dv.DrivesNotIgnored.Count >= _drivesCount)
61+
return;
62+
dv.DrivesNotIgnored.Add(drive);
63+
}
64+
65+
protected override void OnTearDown()
66+
{
67+
using var s = Sfi.OpenSession();
68+
using var t = s.BeginTransaction();
69+
70+
s.CreateSQLQuery("delete from DriveOfDevice").ExecuteUpdate();
71+
s.Delete("from Device");
72+
s.Delete("from Drive");
73+
t.Commit();
74+
}
75+
76+
[Test]
77+
public async Task QueryOverFetchAsync()
78+
{
79+
using var log = new SqlLogSpy();
80+
using var s = OpenSession();
81+
var dv2 = await (s.QueryOver<Device>()
82+
.Fetch(SelectMode.Fetch, x => x.DrivesNotIgnored)
83+
.Where(Restrictions.IdEq(id2))
84+
.TransformUsing(Transformers.DistinctRootEntity)
85+
.SingleOrDefaultAsync());
86+
87+
Assert.That(NHibernateUtil.IsInitialized(dv2.DrivesNotIgnored), Is.True);
88+
Assert.That(dv2.DrivesNotIgnored, Has.Count.EqualTo(ValidDrivesCount).And.None.Null);
89+
Assert.That(log.Appender.GetEvents().Length, Is.EqualTo(1));
90+
}
91+
92+
[Test]
93+
public async Task QueryOverFetch2Async()
94+
{
95+
using var log = new SqlLogSpy();
96+
using var s = OpenSession();
97+
var withTemplate = await (s.QueryOver<Device>()
98+
.Fetch(SelectMode.Fetch, x => x.Template, x => x.Template.DrivesNotIgnored)
99+
.Where(Restrictions.IdEq(_withTempalteId))
100+
.TransformUsing(Transformers.DistinctRootEntity)
101+
.SingleOrDefaultAsync());
102+
103+
Assert.That(NHibernateUtil.IsInitialized(withTemplate.Template), Is.True);
104+
Assert.That(NHibernateUtil.IsInitialized(withTemplate.Template.DrivesNotIgnored), Is.True);
105+
Assert.That(withTemplate.Template.DrivesNotIgnored, Has.Count.EqualTo(ValidDrivesCount).And.None.Null);
106+
Assert.That(log.Appender.GetEvents().Length, Is.EqualTo(1));
107+
}
108+
109+
[Test]
110+
public async Task HqlFetchAsync()
111+
{
112+
using var log = new SqlLogSpy();
113+
using var s = OpenSession();
114+
var dv2 = await (s.CreateQuery("from Device d left join fetch d.DrivesNotIgnored where d.id = :id")
115+
.SetResultTransformer(Transformers.DistinctRootEntity)
116+
.SetParameter("id", id2)
117+
.UniqueResultAsync<Device>());
118+
119+
Assert.That(NHibernateUtil.IsInitialized(dv2.DrivesNotIgnored), Is.True);
120+
Assert.That(dv2.DrivesNotIgnored, Has.Count.EqualTo(ValidDrivesCount).And.None.Null);
121+
Assert.That(log.Appender.GetEvents().Length, Is.EqualTo(1));
122+
}
123+
124+
[Test]
125+
public async Task HqlFetch2Async()
126+
{
127+
using var log = new SqlLogSpy();
128+
using var s = OpenSession();
129+
var withTemplate = await (s.CreateQuery("from Device t left join fetch t.Template d left join fetch d.DrivesNotIgnored where d.id = :id")
130+
.SetResultTransformer(Transformers.DistinctRootEntity)
131+
.SetParameter("id", id2)
132+
.UniqueResultAsync<Device>());
133+
134+
Assert.That(NHibernateUtil.IsInitialized(withTemplate.Template), Is.True);
135+
Assert.That(NHibernateUtil.IsInitialized(withTemplate.Template.DrivesNotIgnored), Is.True);
136+
Assert.That(withTemplate.Template.DrivesNotIgnored, Has.Count.EqualTo(ValidDrivesCount).And.None.Null);
137+
Assert.That(log.Appender.GetEvents().Length, Is.EqualTo(1));
138+
}
139+
140+
[Test]
141+
public async Task LazyLoadAsync()
142+
{
143+
using var log = new SqlLogSpy();
144+
using var s = OpenSession();
145+
146+
var dv2 = await (s.GetAsync<Device>(id2));
147+
148+
await (NHibernateUtil.InitializeAsync(dv2.DrivesNotIgnored));
149+
Assert.That(NHibernateUtil.IsInitialized(dv2.DrivesNotIgnored), Is.True);
150+
Assert.That(dv2.DrivesNotIgnored, Has.Count.EqualTo(ValidDrivesCount).And.None.Null);
151+
// First query for Device, second for Drives collection
152+
Assert.That(log.Appender.GetEvents().Length, Is.EqualTo(2));
153+
}
154+
}
155+
}

src/NHibernate.Test/Async/NHSpecificTest/NH750/ManyToManyNotFoundIgnoreFixture.cs

Lines changed: 58 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ public class ManyToManyNotFoundIgnoreFixtureAsync : BugTestCase
2424
private int id1;
2525
private int id2;
2626
private int _drive2Id;
27+
private int _withTempalteId;
2728
private readonly int _drivesCount;
2829
private int ValidDrivesCount => _drivesCount == 0? 0 : _drivesCount - 1;
2930

@@ -39,25 +40,26 @@ protected override void OnSetUp()
3940
Drive dr3 = new Drive("Drive 3");
4041
Device dv1 = new Device("Device 1");
4142
Device dv2 = new Device("Device 2");
42-
using (var s = Sfi.OpenSession())
43-
using (var t = s.BeginTransaction())
44-
{
45-
s.Save(dr1);
46-
_drive2Id = (int)s.Save(dr2);
47-
s.Save(dr3);
48-
AddDrive(dv1, dr2);
49-
AddDrive(dv1, dr1);
50-
AddDrive(dv2, dr3);
51-
AddDrive(dv2, dr1);
52-
53-
id1 = (int) s.Save(dv1);
54-
id2 = (int) s.Save(dv2);
55-
s.Flush();
56-
57-
s.Clear();
58-
s.Delete(dr3);
59-
t.Commit();
60-
}
43+
var withTempalte = new Device("Device With Device 2 template") { Template = dv2 };
44+
45+
using var s = Sfi.OpenSession();
46+
using var t = s.BeginTransaction();
47+
s.Save(dr1);
48+
_drive2Id = (int)s.Save(dr2);
49+
s.Save(dr3);
50+
AddDrive(dv1, dr2);
51+
AddDrive(dv1, dr1);
52+
AddDrive(dv2, dr3);
53+
AddDrive(dv2, dr1);
54+
55+
id1 = (int) s.Save(dv1);
56+
id2 = (int) s.Save(dv2);
57+
_withTempalteId = (int)s.Save(withTempalte);
58+
s.Flush();
59+
60+
s.Clear();
61+
s.Delete(dr3);
62+
t.Commit();
6163
}
6264

6365
private void AddDrive(Device dv, Drive drive)
@@ -87,6 +89,8 @@ public async Task DeviceOfDriveAsync()
8789
{
8890
dv1 = (Device) await (s.LoadAsync(typeof(Device), id1));
8991
dv2 = (Device) await (s.LoadAsync(typeof(Device), id2));
92+
await (NHibernateUtil.InitializeAsync(dv1.Drives));
93+
await (NHibernateUtil.InitializeAsync(dv2.Drives));
9094
}
9195

9296
Assert.That(dv1.Drives, Has.Count.EqualTo(_drivesCount).And.None.Null);
@@ -152,6 +156,23 @@ public async Task QueryOverFetchAsync()
152156
Assert.That(log.Appender.GetEvents().Length, Is.EqualTo(1));
153157
}
154158

159+
[Test]
160+
public async Task QueryOverFetch2Async()
161+
{
162+
using var log = new SqlLogSpy();
163+
using var s = OpenSession();
164+
var withTemplate = await (s.QueryOver<Device>()
165+
.Fetch(SelectMode.Fetch, x => x.Template, x => x.Template.Drives)
166+
.Where(Restrictions.IdEq(_withTempalteId))
167+
.TransformUsing(Transformers.DistinctRootEntity)
168+
.SingleOrDefaultAsync());
169+
170+
Assert.That(NHibernateUtil.IsInitialized(withTemplate.Template), Is.True);
171+
Assert.That(NHibernateUtil.IsInitialized(withTemplate.Template.Drives), Is.True);
172+
Assert.That(withTemplate.Template.Drives, Has.Count.EqualTo(ValidDrivesCount).And.None.Null);
173+
Assert.That(log.Appender.GetEvents().Length, Is.EqualTo(1));
174+
}
175+
155176
[Test]
156177
public async Task HqlFetchAsync()
157178
{
@@ -168,17 +189,31 @@ public async Task HqlFetchAsync()
168189
}
169190

170191
[Test]
171-
public async Task LazyLoadAsync()
192+
public async Task HqlFetch2Async()
172193
{
173194
using var log = new SqlLogSpy();
174195
using var s = OpenSession();
196+
var withTemplate = await (s.CreateQuery("from Device t left join fetch t.Template d left join fetch d.Drives where d.id = :id")
197+
.SetResultTransformer(Transformers.DistinctRootEntity)
198+
.SetParameter("id", id2)
199+
.UniqueResultAsync<Device>());
200+
201+
Assert.That(NHibernateUtil.IsInitialized(withTemplate.Template), Is.True);
202+
Assert.That(NHibernateUtil.IsInitialized(withTemplate.Template.Drives), Is.True);
203+
Assert.That(withTemplate.Template.Drives, Has.Count.EqualTo(ValidDrivesCount).And.None.Null);
204+
Assert.That(log.Appender.GetEvents().Length, Is.EqualTo(1));
205+
}
206+
207+
[Test]
208+
public async Task LazyLoadAsync()
209+
{
210+
using var s = OpenSession();
175211

176212
var dv2 = await (s.GetAsync<Device>(id2));
213+
using var log = new SqlLogSpy();
177214

178-
Assert.That(NHibernateUtil.IsInitialized(dv2.Drives), Is.True);
179215
Assert.That(dv2.Drives, Has.Count.EqualTo(ValidDrivesCount).And.None.Null);
180-
// First query for Device, second for Drives collection
181-
Assert.That(log.Appender.GetEvents().Length, Is.EqualTo(2));
216+
Assert.That(log.Appender.GetEvents().Length, Is.EqualTo(1));
182217
}
183218
}
184219
}

src/NHibernate.Test/Async/NHSpecificTest/NH750/ManyToManyThrowsForNotFoundFixture.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@ protected override void OnTearDown()
5555
[Test]
5656
public async Task LazyLoadAsync()
5757
{
58+
using var log = new SqlLogSpy();
5859
using var s = OpenSession();
5960
var device = await (s.GetAsync<Device>(_id));
6061
Assert.ThrowsAsync<ObjectNotFoundException>(() => NHibernateUtil.InitializeAsync(device.DrivesNotIgnored));

src/NHibernate.Test/Async/SubselectFetchTest/SubselectFetchFixture.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -291,7 +291,7 @@ public async Task ManyToManyCriteriaJoinAsync()
291291

292292
s = OpenSession();
293293
t = s.BeginTransaction();
294-
294+
var log = new SqlLogSpy();
295295
await (s.CreateCriteria(typeof(Parent))
296296
.AddOrder(Order.Desc("Name"))
297297
// H3 has this after CreateCriteria("Friends"), but it's not yet supported in NH

0 commit comments

Comments
 (0)