Skip to content

Commit 7062def

Browse files
committed
Fix tests for Firebird and MySql
1 parent 1764a68 commit 7062def

File tree

2 files changed

+92
-133
lines changed

2 files changed

+92
-133
lines changed

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

+31-71
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ namespace NHibernate.Test.Linq
2121
{
2222
using System.Threading.Tasks;
2323
using System.Threading;
24-
[TestFixture(typeof(EnumType<TestEnum>),"0")]
24+
[TestFixture(typeof(EnumType<TestEnum>), "0")]
2525
[TestFixture(typeof(EnumStringType<TestEnum>), "'Unspecified'")]
2626
[TestFixture(typeof(EnumAnsiStringType<TestEnum>), "'Unspecified'")]
2727
public class EnumTestsAsync : TestCaseMappingByCode
@@ -42,18 +42,17 @@ protected override HbmMapping GetMappings()
4242
rc =>
4343
{
4444
rc.Table("EnumEntity");
45-
rc.Id(x => x.Id, m => m.Generator(Generators.Identity));
45+
rc.Id(x => x.Id, m => m.Generator(Generators.Guid));
4646
rc.Property(x => x.Name);
47-
rc.Property(x => x.Enum, m => m.Type(_enumType));
48-
rc.Property(x => x.NullableEnum, m =>
47+
rc.Property(x => x.Enum1, m => m.Type(_enumType));
48+
rc.Property(x => x.NullableEnum1, m =>
4949
{
5050
m.Type(_enumType);
51-
m.Formula($"(case when Enum = {_unspecifiedValue} then null else Enum end)");
51+
m.Formula($"(case when Enum1 = {_unspecifiedValue} then null else Enum1 end)");
5252
});
5353
rc.ManyToOne(x => x.Other, m => m.Cascade(Mapping.ByCode.Cascade.All));
5454
});
5555

56-
5756
return mapper.CompileMappingForAllExplicitlyAddedEntities();
5857
}
5958

@@ -63,16 +62,16 @@ protected override void OnSetUp()
6362
using (var session = OpenSession())
6463
using (var trans = session.BeginTransaction())
6564
{
66-
session.Save(new EnumEntity { Enum = TestEnum.Unspecified });
67-
session.Save(new EnumEntity { Enum = TestEnum.Small });
68-
session.Save(new EnumEntity { Enum = TestEnum.Small });
69-
session.Save(new EnumEntity { Enum = TestEnum.Medium });
70-
session.Save(new EnumEntity { Enum = TestEnum.Medium });
71-
session.Save(new EnumEntity { Enum = TestEnum.Medium });
72-
session.Save(new EnumEntity { Enum = TestEnum.Large });
73-
session.Save(new EnumEntity { Enum = TestEnum.Large });
74-
session.Save(new EnumEntity { Enum = TestEnum.Large });
75-
session.Save(new EnumEntity { Enum = TestEnum.Large });
65+
session.Save(new EnumEntity { Enum1 = TestEnum.Unspecified });
66+
session.Save(new EnumEntity { Enum1 = TestEnum.Small });
67+
session.Save(new EnumEntity { Enum1 = TestEnum.Small });
68+
session.Save(new EnumEntity { Enum1 = TestEnum.Medium });
69+
session.Save(new EnumEntity { Enum1 = TestEnum.Medium });
70+
session.Save(new EnumEntity { Enum1 = TestEnum.Medium });
71+
session.Save(new EnumEntity { Enum1 = TestEnum.Large });
72+
session.Save(new EnumEntity { Enum1 = TestEnum.Large });
73+
session.Save(new EnumEntity { Enum1 = TestEnum.Large });
74+
session.Save(new EnumEntity { Enum1 = TestEnum.Large });
7675
trans.Commit();
7776
}
7877
}
@@ -118,7 +117,7 @@ public async Task CanQueryOnEnum_Unspecified_1Async()
118117
using (var session = OpenSession())
119118
using (var trans = session.BeginTransaction())
120119
{
121-
var query = await (session.Query<EnumEntity>().Where(x => x.Enum == type).ToListAsync(cancellationToken));
120+
var query = await (session.Query<EnumEntity>().Where(x => x.Enum1 == type).ToListAsync(cancellationToken));
122121

123122
Assert.AreEqual(expectedCount, query.Count);
124123
}
@@ -131,7 +130,7 @@ public async Task CanQueryWithContainsOnTestEnum_Small_1Async()
131130
using (var session = OpenSession())
132131
using (var trans = session.BeginTransaction())
133132
{
134-
var query = await (session.Query<EnumEntity>().Where(x => values.Contains(x.Enum)).ToListAsync());
133+
var query = await (session.Query<EnumEntity>().Where(x => values.Contains(x.Enum1)).ToListAsync());
135134

136135
Assert.AreEqual(5, query.Count);
137136
}
@@ -145,17 +144,17 @@ public async Task ConditionalNavigationPropertyAsync()
145144
using (var trans = session.BeginTransaction())
146145
{
147146
var entities = session.Query<EnumEntity>();
148-
await (entities.Where(o => o.Enum == TestEnum.Large).ToListAsync());
149-
await (entities.Where(o => TestEnum.Large != o.Enum).ToListAsync());
150-
await (entities.Where(o => (o.NullableEnum ?? TestEnum.Large) == TestEnum.Medium).ToListAsync());
151-
await (entities.Where(o => ((o.NullableEnum ?? type) ?? o.Enum) == TestEnum.Medium).ToListAsync());
152-
153-
await (entities.Where(o => (o.NullableEnum.HasValue ? o.Enum : TestEnum.Unspecified) == TestEnum.Medium).ToListAsync());
154-
await (entities.Where(o => (o.Enum != TestEnum.Large
155-
? (o.NullableEnum.HasValue ? o.Enum : TestEnum.Unspecified)
147+
await (entities.Where(o => o.Enum1 == TestEnum.Large).ToListAsync());
148+
await (entities.Where(o => TestEnum.Large != o.Enum1).ToListAsync());
149+
await (entities.Where(o => (o.NullableEnum1 ?? TestEnum.Large) == TestEnum.Medium).ToListAsync());
150+
await (entities.Where(o => ((o.NullableEnum1 ?? type) ?? o.Enum1) == TestEnum.Medium).ToListAsync());
151+
152+
await (entities.Where(o => (o.NullableEnum1.HasValue ? o.Enum1 : TestEnum.Unspecified) == TestEnum.Medium).ToListAsync());
153+
await (entities.Where(o => (o.Enum1 != TestEnum.Large
154+
? (o.NullableEnum1.HasValue ? o.Enum1 : TestEnum.Unspecified)
156155
: TestEnum.Small) == TestEnum.Medium).ToListAsync());
157156

158-
await (entities.Where(o => (o.Enum == TestEnum.Large ? o.Other : o.Other).Name == "test").ToListAsync());
157+
await (entities.Where(o => (o.Enum1 == TestEnum.Large ? o.Other : o.Other).Name == "test").ToListAsync());
159158
}
160159
}
161160

@@ -170,59 +169,20 @@ public async Task CanQueryComplexExpressionOnTestEnumAsync()
170169
var entities = session.Query<EnumEntity>();
171170

172171
var query = await ((from user in entities
173-
where (user.NullableEnum == TestEnum.Large
172+
where (user.NullableEnum1 == TestEnum.Large
174173
? TestEnum.Medium
175-
: user.NullableEnum ?? user.Enum
174+
: user.NullableEnum1 ?? user.Enum1
176175
) == type
177176
select new
178177
{
179178
user,
180-
simple = user.Enum,
181-
condition = user.Enum == TestEnum.Large ? TestEnum.Medium : user.Enum,
182-
coalesce = user.NullableEnum ?? TestEnum.Medium
179+
simple = user.Enum1,
180+
condition = user.Enum1 == TestEnum.Large ? TestEnum.Medium : user.Enum1,
181+
coalesce = user.NullableEnum1 ?? TestEnum.Medium
183182
}).ToListAsync());
184183

185184
Assert.That(query.Count, Is.EqualTo(0));
186185
}
187186
}
188-
189-
public class EnumEntity
190-
{
191-
public virtual int Id { get; set; }
192-
public virtual string Name { get; set; }
193-
194-
public virtual TestEnum Enum { get; set; }
195-
public virtual TestEnum? NullableEnum { get; set; }
196-
197-
public virtual EnumEntity Other { get; set; }
198-
}
199-
200-
public enum TestEnum
201-
{
202-
Unspecified,
203-
Small,
204-
Medium,
205-
Large
206-
}
207-
208-
[Serializable]
209-
public class EnumAnsiStringType<T> : EnumStringType
210-
{
211-
private readonly string typeName;
212-
213-
public EnumAnsiStringType()
214-
: base(typeof(T))
215-
{
216-
System.Type type = GetType();
217-
typeName = type.FullName + ", " + type.Assembly.GetName().Name;
218-
}
219-
220-
public override string Name
221-
{
222-
get { return typeName; }
223-
}
224-
225-
public override SqlType SqlType => SqlTypeFactory.GetAnsiString(255);
226-
}
227187
}
228188
}

src/NHibernate.Test/Linq/EnumTests.cs

+61-62
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88

99
namespace NHibernate.Test.Linq
1010
{
11-
[TestFixture(typeof(EnumType<TestEnum>),"0")]
11+
[TestFixture(typeof(EnumType<TestEnum>), "0")]
1212
[TestFixture(typeof(EnumStringType<TestEnum>), "'Unspecified'")]
1313
[TestFixture(typeof(EnumAnsiStringType<TestEnum>), "'Unspecified'")]
1414
public class EnumTests : TestCaseMappingByCode
@@ -29,18 +29,17 @@ protected override HbmMapping GetMappings()
2929
rc =>
3030
{
3131
rc.Table("EnumEntity");
32-
rc.Id(x => x.Id, m => m.Generator(Generators.Identity));
32+
rc.Id(x => x.Id, m => m.Generator(Generators.Guid));
3333
rc.Property(x => x.Name);
34-
rc.Property(x => x.Enum, m => m.Type(_enumType));
35-
rc.Property(x => x.NullableEnum, m =>
34+
rc.Property(x => x.Enum1, m => m.Type(_enumType));
35+
rc.Property(x => x.NullableEnum1, m =>
3636
{
3737
m.Type(_enumType);
38-
m.Formula($"(case when Enum = {_unspecifiedValue} then null else Enum end)");
38+
m.Formula($"(case when Enum1 = {_unspecifiedValue} then null else Enum1 end)");
3939
});
4040
rc.ManyToOne(x => x.Other, m => m.Cascade(Mapping.ByCode.Cascade.All));
4141
});
4242

43-
4443
return mapper.CompileMappingForAllExplicitlyAddedEntities();
4544
}
4645

@@ -50,16 +49,16 @@ protected override void OnSetUp()
5049
using (var session = OpenSession())
5150
using (var trans = session.BeginTransaction())
5251
{
53-
session.Save(new EnumEntity { Enum = TestEnum.Unspecified });
54-
session.Save(new EnumEntity { Enum = TestEnum.Small });
55-
session.Save(new EnumEntity { Enum = TestEnum.Small });
56-
session.Save(new EnumEntity { Enum = TestEnum.Medium });
57-
session.Save(new EnumEntity { Enum = TestEnum.Medium });
58-
session.Save(new EnumEntity { Enum = TestEnum.Medium });
59-
session.Save(new EnumEntity { Enum = TestEnum.Large });
60-
session.Save(new EnumEntity { Enum = TestEnum.Large });
61-
session.Save(new EnumEntity { Enum = TestEnum.Large });
62-
session.Save(new EnumEntity { Enum = TestEnum.Large });
52+
session.Save(new EnumEntity { Enum1 = TestEnum.Unspecified });
53+
session.Save(new EnumEntity { Enum1 = TestEnum.Small });
54+
session.Save(new EnumEntity { Enum1 = TestEnum.Small });
55+
session.Save(new EnumEntity { Enum1 = TestEnum.Medium });
56+
session.Save(new EnumEntity { Enum1 = TestEnum.Medium });
57+
session.Save(new EnumEntity { Enum1 = TestEnum.Medium });
58+
session.Save(new EnumEntity { Enum1 = TestEnum.Large });
59+
session.Save(new EnumEntity { Enum1 = TestEnum.Large });
60+
session.Save(new EnumEntity { Enum1 = TestEnum.Large });
61+
session.Save(new EnumEntity { Enum1 = TestEnum.Large });
6362
trans.Commit();
6463
}
6564
}
@@ -105,7 +104,7 @@ private void CanQueryOnEnum(TestEnum type, int expectedCount)
105104
using (var session = OpenSession())
106105
using (var trans = session.BeginTransaction())
107106
{
108-
var query = session.Query<EnumEntity>().Where(x => x.Enum == type).ToList();
107+
var query = session.Query<EnumEntity>().Where(x => x.Enum1 == type).ToList();
109108

110109
Assert.AreEqual(expectedCount, query.Count);
111110
}
@@ -118,7 +117,7 @@ public void CanQueryWithContainsOnTestEnum_Small_1()
118117
using (var session = OpenSession())
119118
using (var trans = session.BeginTransaction())
120119
{
121-
var query = session.Query<EnumEntity>().Where(x => values.Contains(x.Enum)).ToList();
120+
var query = session.Query<EnumEntity>().Where(x => values.Contains(x.Enum1)).ToList();
122121

123122
Assert.AreEqual(5, query.Count);
124123
}
@@ -132,17 +131,17 @@ public void ConditionalNavigationProperty()
132131
using (var trans = session.BeginTransaction())
133132
{
134133
var entities = session.Query<EnumEntity>();
135-
entities.Where(o => o.Enum == TestEnum.Large).ToList();
136-
entities.Where(o => TestEnum.Large != o.Enum).ToList();
137-
entities.Where(o => (o.NullableEnum ?? TestEnum.Large) == TestEnum.Medium).ToList();
138-
entities.Where(o => ((o.NullableEnum ?? type) ?? o.Enum) == TestEnum.Medium).ToList();
139-
140-
entities.Where(o => (o.NullableEnum.HasValue ? o.Enum : TestEnum.Unspecified) == TestEnum.Medium).ToList();
141-
entities.Where(o => (o.Enum != TestEnum.Large
142-
? (o.NullableEnum.HasValue ? o.Enum : TestEnum.Unspecified)
134+
entities.Where(o => o.Enum1 == TestEnum.Large).ToList();
135+
entities.Where(o => TestEnum.Large != o.Enum1).ToList();
136+
entities.Where(o => (o.NullableEnum1 ?? TestEnum.Large) == TestEnum.Medium).ToList();
137+
entities.Where(o => ((o.NullableEnum1 ?? type) ?? o.Enum1) == TestEnum.Medium).ToList();
138+
139+
entities.Where(o => (o.NullableEnum1.HasValue ? o.Enum1 : TestEnum.Unspecified) == TestEnum.Medium).ToList();
140+
entities.Where(o => (o.Enum1 != TestEnum.Large
141+
? (o.NullableEnum1.HasValue ? o.Enum1 : TestEnum.Unspecified)
143142
: TestEnum.Small) == TestEnum.Medium).ToList();
144143

145-
entities.Where(o => (o.Enum == TestEnum.Large ? o.Other : o.Other).Name == "test").ToList();
144+
entities.Where(o => (o.Enum1 == TestEnum.Large ? o.Other : o.Other).Name == "test").ToList();
146145
}
147146
}
148147

@@ -157,59 +156,59 @@ public void CanQueryComplexExpressionOnTestEnum()
157156
var entities = session.Query<EnumEntity>();
158157

159158
var query = (from user in entities
160-
where (user.NullableEnum == TestEnum.Large
159+
where (user.NullableEnum1 == TestEnum.Large
161160
? TestEnum.Medium
162-
: user.NullableEnum ?? user.Enum
161+
: user.NullableEnum1 ?? user.Enum1
163162
) == type
164163
select new
165164
{
166165
user,
167-
simple = user.Enum,
168-
condition = user.Enum == TestEnum.Large ? TestEnum.Medium : user.Enum,
169-
coalesce = user.NullableEnum ?? TestEnum.Medium
166+
simple = user.Enum1,
167+
condition = user.Enum1 == TestEnum.Large ? TestEnum.Medium : user.Enum1,
168+
coalesce = user.NullableEnum1 ?? TestEnum.Medium
170169
}).ToList();
171170

172171
Assert.That(query.Count, Is.EqualTo(0));
173172
}
174173
}
174+
}
175175

176-
public class EnumEntity
177-
{
178-
public virtual int Id { get; set; }
179-
public virtual string Name { get; set; }
176+
public class EnumEntity
177+
{
178+
public virtual Guid Id { get; set; }
179+
public virtual string Name { get; set; }
180180

181-
public virtual TestEnum Enum { get; set; }
182-
public virtual TestEnum? NullableEnum { get; set; }
181+
public virtual TestEnum Enum1 { get; set; }
182+
public virtual TestEnum? NullableEnum1 { get; set; }
183183

184-
public virtual EnumEntity Other { get; set; }
185-
}
184+
public virtual EnumEntity Other { get; set; }
185+
}
186186

187-
public enum TestEnum
187+
public enum TestEnum
188+
{
189+
Unspecified,
190+
Small,
191+
Medium,
192+
Large
193+
}
194+
195+
[Serializable]
196+
public class EnumAnsiStringType<T> : EnumStringType
197+
{
198+
private readonly string typeName;
199+
200+
public EnumAnsiStringType()
201+
: base(typeof(T))
188202
{
189-
Unspecified,
190-
Small,
191-
Medium,
192-
Large
203+
System.Type type = GetType();
204+
typeName = type.FullName + ", " + type.Assembly.GetName().Name;
193205
}
194206

195-
[Serializable]
196-
public class EnumAnsiStringType<T> : EnumStringType
207+
public override string Name
197208
{
198-
private readonly string typeName;
199-
200-
public EnumAnsiStringType()
201-
: base(typeof(T))
202-
{
203-
System.Type type = GetType();
204-
typeName = type.FullName + ", " + type.Assembly.GetName().Name;
205-
}
206-
207-
public override string Name
208-
{
209-
get { return typeName; }
210-
}
211-
212-
public override SqlType SqlType => SqlTypeFactory.GetAnsiString(255);
209+
get { return typeName; }
213210
}
211+
212+
public override SqlType SqlType => SqlTypeFactory.GetAnsiString(255);
214213
}
215214
}

0 commit comments

Comments
 (0)