Skip to content

Commit 20d453a

Browse files
committed
Revert "Modified tests"
This reverts commit b82d1e1.
1 parent b82d1e1 commit 20d453a

File tree

2 files changed

+113
-163
lines changed

2 files changed

+113
-163
lines changed

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

Lines changed: 57 additions & 82 deletions
Original file line numberDiff line numberDiff line change
@@ -21,18 +21,13 @@ namespace NHibernate.Test.Linq
2121
{
2222
using System.Threading.Tasks;
2323
using System.Threading;
24-
using System.Linq.Expressions;
25-
2624
[TestFixture(typeof(EnumType<TestEnum>))]
2725
[TestFixture(typeof(EnumStringType<TestEnum>))]
2826
[TestFixture(typeof(EnumAnsiStringType<TestEnum>))]
2927
public class EnumTestsAsync : TestCaseMappingByCode
3028
{
3129
private IType _enumType;
32-
private ISession _session;
3330

34-
private IQueryable<EnumEntity> TestEntities { get; set; }
35-
private IQueryable<EnumEntity> TestEntitiesInDb { get; set; }
3631

3732
public EnumTestsAsync(System.Type enumType)
3833
{
@@ -48,7 +43,6 @@ protected override HbmMapping GetMappings()
4843
rc.Table("EnumEntity");
4944
rc.Id(x => x.Id, m => m.Generator(Generators.Identity));
5045
rc.Property(x => x.Name);
51-
rc.Property(x => x.BatchId);
5246
rc.Property(x => x.Enum, m => m.Type(_enumType));
5347
rc.Property(x => x.NullableEnum, m => m.Type(_enumType));
5448
rc.ManyToOne(x => x.Other, m => m.Cascade(Mapping.ByCode.Cascade.All));
@@ -61,43 +55,25 @@ protected override HbmMapping GetMappings()
6155
protected override void OnSetUp()
6256
{
6357
base.OnSetUp();
64-
_session = OpenSession();
65-
66-
var entities = new[] {
67-
new EnumEntity { Enum = TestEnum.Unspecified },
68-
new EnumEntity { Enum = TestEnum.Small, NullableEnum = TestEnum.Large },
69-
new EnumEntity { Enum = TestEnum.Small, NullableEnum = TestEnum.Medium },
70-
new EnumEntity { Enum = TestEnum.Medium, NullableEnum = TestEnum.Medium },
71-
new EnumEntity { Enum = TestEnum.Medium, NullableEnum = TestEnum.Small },
72-
new EnumEntity { Enum = TestEnum.Medium },
73-
new EnumEntity { Enum = TestEnum.Large, NullableEnum = TestEnum.Medium },
74-
new EnumEntity { Enum = TestEnum.Large, NullableEnum = TestEnum.Unspecified },
75-
new EnumEntity { Enum = TestEnum.Large },
76-
new EnumEntity { Enum = TestEnum.Large }
77-
};
78-
79-
var batchId = Guid.NewGuid();
80-
81-
using (var trans = _session.BeginTransaction())
58+
using (var session = OpenSession())
59+
using (var trans = session.BeginTransaction())
8260
{
83-
foreach (var item in entities)
84-
{
85-
item.BatchId = batchId;
86-
_session.Save(item);
87-
}
61+
session.Save(new EnumEntity { Enum = TestEnum.Unspecified });
62+
session.Save(new EnumEntity { Enum = TestEnum.Small });
63+
session.Save(new EnumEntity { Enum = TestEnum.Small });
64+
session.Save(new EnumEntity { Enum = TestEnum.Medium });
65+
session.Save(new EnumEntity { Enum = TestEnum.Medium });
66+
session.Save(new EnumEntity { Enum = TestEnum.Medium });
67+
session.Save(new EnumEntity { Enum = TestEnum.Large });
68+
session.Save(new EnumEntity { Enum = TestEnum.Large });
69+
session.Save(new EnumEntity { Enum = TestEnum.Large });
70+
session.Save(new EnumEntity { Enum = TestEnum.Large });
8871
trans.Commit();
8972
}
90-
91-
TestEntitiesInDb = _session.Query<EnumEntity>().Where(x => x.BatchId == batchId);
92-
TestEntities = entities.AsQueryable();
9373
}
9474

9575
protected override void OnTearDown()
9676
{
97-
if (_session.IsOpen)
98-
{
99-
_session.Close();
100-
}
10177
using (var session = OpenSession())
10278
using (var transaction = session.BeginTransaction())
10379
{
@@ -132,68 +108,76 @@ public async Task CanQueryOnEnum_Unspecified_1Async()
132108
await (CanQueryOnEnumAsync(TestEnum.Unspecified, 1));
133109
}
134110

135-
private async Task CanQueryOnEnumAsync(TestEnum type, int expectedCount)
111+
private async Task CanQueryOnEnumAsync(TestEnum type, int expectedCount, CancellationToken cancellationToken = default(CancellationToken))
136112
{
137-
var query = await (TestEntitiesInDb.Where(x => x.Enum == type).ToListAsync());
113+
using (var session = OpenSession())
114+
using (var trans = session.BeginTransaction())
115+
{
116+
var query = await (session.Query<EnumEntity>().Where(x => x.Enum == type).ToListAsync(cancellationToken));
138117

139-
Assert.AreEqual(expectedCount, query.Count);
118+
Assert.AreEqual(expectedCount, query.Count);
119+
}
140120
}
141121

142122
[Test]
143123
public async Task CanQueryWithContainsOnTestEnum_Small_1Async()
144124
{
145125
var values = new[] { TestEnum.Small, TestEnum.Medium };
126+
using (var session = OpenSession())
127+
using (var trans = session.BeginTransaction())
128+
{
129+
var query = await (session.Query<EnumEntity>().Where(x => values.Contains(x.Enum)).ToListAsync());
146130

147-
var query = await (TestEntitiesInDb.Where(x => values.Contains(x.Enum)).ToListAsync());
148-
149-
Assert.AreEqual(5, query.Count);
131+
Assert.AreEqual(5, query.Count);
132+
}
150133
}
151134

152135
[Test]
153136
public async Task ConditionalNavigationPropertyAsync()
154137
{
155138
TestEnum? type = null;
156-
157-
158-
await (TestEntitiesInDb.Where(o => o.Enum == TestEnum.Large).ToListAsync());
159-
await (TestEntitiesInDb.Where(o => TestEnum.Large != o.Enum).ToListAsync());
160-
await (TestEntitiesInDb.Where(o => (o.NullableEnum ?? TestEnum.Large) == TestEnum.Medium).ToListAsync());
161-
await (TestEntitiesInDb.Where(o => ((o.NullableEnum ?? type) ?? o.Enum) == TestEnum.Medium).ToListAsync());
162-
163-
await (TestEntitiesInDb.Where(o => (o.NullableEnum.HasValue ? o.Enum : TestEnum.Unspecified) == TestEnum.Medium).ToListAsync());
164-
await (TestEntitiesInDb.Where(o => (o.Enum != TestEnum.Large
139+
using (var session = OpenSession())
140+
using (var trans = session.BeginTransaction())
141+
{
142+
var entities = session.Query<EnumEntity>();
143+
await (entities.Where(o => o.Enum == TestEnum.Large).ToListAsync());
144+
await (entities.Where(o => TestEnum.Large != o.Enum).ToListAsync());
145+
await (entities.Where(o => (o.NullableEnum ?? TestEnum.Large) == TestEnum.Medium).ToListAsync());
146+
await (entities.Where(o => ((o.NullableEnum ?? type) ?? o.Enum) == TestEnum.Medium).ToListAsync());
147+
148+
await (entities.Where(o => (o.NullableEnum.HasValue ? o.Enum : TestEnum.Unspecified) == TestEnum.Medium).ToListAsync());
149+
await (entities.Where(o => (o.Enum != TestEnum.Large
165150
? (o.NullableEnum.HasValue ? o.Enum : TestEnum.Unspecified)
166151
: TestEnum.Small) == TestEnum.Medium).ToListAsync());
167152

168-
await (TestEntitiesInDb.Where(o => (o.Enum == TestEnum.Large ? o.Other : o.Other).Name == "test").ToListAsync());
153+
await (entities.Where(o => (o.Enum == TestEnum.Large ? o.Other : o.Other).Name == "test").ToListAsync());
154+
}
169155
}
170156

171157
[Test]
172158
public async Task CanQueryComplexExpressionOnTestEnumAsync()
173159
{
174160
var type = TestEnum.Unspecified;
175-
176-
Expression<Func<EnumEntity, bool>> predicate = user => (user.NullableEnum == TestEnum.Large
177-
? TestEnum.Medium
178-
: user.NullableEnum ?? user.Enum
179-
) == type;
180-
181-
var query = await (TestEntitiesInDb.Where(predicate).Select(entity => new ProjectedEnum
161+
using (var session = OpenSession())
162+
using (var trans = session.BeginTransaction())
182163
{
183-
Entity = entity,
184-
Simple = entity.Enum,
185-
Condition = entity.Enum == TestEnum.Large ? TestEnum.Medium : entity.Enum,
186-
Coalesce = entity.NullableEnum ?? TestEnum.Medium
187-
}).ToListAsync());
188-
189-
var targetCount = TestEntities.Count(predicate); //the truth
190-
Assert.That(targetCount, Is.GreaterThan(0)); //test sanity check
191-
Assert.That(query.Count, Is.EqualTo(targetCount));
192-
193-
Assert.That(query, Is.All.Matches<ProjectedEnum>(x => x.Simple == x.Entity.Enum));
194-
Assert.That(query, Is.All.Matches<ProjectedEnum>(x => x.Condition == (x.Entity.Enum == TestEnum.Large ? TestEnum.Medium : x.Entity.Enum)));
195-
Assert.That(query, Is.All.Matches<ProjectedEnum>(x => x.Coalesce == (x.Entity.NullableEnum ?? TestEnum.Medium)));
196-
164+
var entities = session.Query<EnumEntity>();
165+
166+
var query = await ((from user in entities
167+
where (user.NullableEnum == TestEnum.Large
168+
? TestEnum.Medium
169+
: user.NullableEnum ?? user.Enum
170+
) == type
171+
select new
172+
{
173+
user,
174+
simple = user.Enum,
175+
condition = user.Enum == TestEnum.Large ? TestEnum.Medium : user.Enum,
176+
coalesce = user.NullableEnum ?? TestEnum.Medium
177+
}).ToListAsync());
178+
179+
Assert.That(query.Count, Is.EqualTo(1));
180+
}
197181
}
198182

199183
public class EnumEntity
@@ -205,7 +189,6 @@ public class EnumEntity
205189
public virtual TestEnum? NullableEnum { get; set; }
206190

207191
public virtual EnumEntity Other { get; set; }
208-
public virtual Guid BatchId { get; set; }
209192
}
210193

211194
public enum TestEnum
@@ -235,13 +218,5 @@ public override string Name
235218

236219
public override SqlType SqlType => SqlTypeFactory.GetAnsiString(255);
237220
}
238-
239-
private class ProjectedEnum
240-
{
241-
public TestEnum Simple { get; internal set; }
242-
public TestEnum Condition { get; internal set; }
243-
public TestEnum Coalesce { get; internal set; }
244-
public EnumEntity Entity { get; internal set; }
245-
}
246221
}
247222
}

0 commit comments

Comments
 (0)