Skip to content

Commit 1f73fea

Browse files
committed
Fix Firebird and SQL Server CE tests
1 parent 9809339 commit 1f73fea

File tree

2 files changed

+41
-23
lines changed

2 files changed

+41
-23
lines changed

src/NHibernate.Test/Async/NHSpecificTest/NH3565/FixtureByCode.cs

+20-11
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,11 @@
88
//------------------------------------------------------------------------------
99

1010

11+
using System.Data;
1112
using System.Linq;
1213
using NHibernate.Cfg.MappingSchema;
1314
using NHibernate.Mapping.ByCode;
15+
using NHibernate.SqlTypes;
1416
using NUnit.Framework;
1517
using NHibernate.Linq;
1618

@@ -36,15 +38,22 @@ protected override HbmMapping GetMappings()
3638
return mapper.CompileMappingForAllExplicitlyAddedEntities();
3739
}
3840

41+
protected override bool AppliesTo(Dialect.Dialect dialect)
42+
{
43+
return base.AppliesTo(dialect)
44+
//Dialects like SQL Server CE, Firebird don't distinguish AnsiString from String
45+
&& Dialect.GetTypeName(new SqlType(DbType.AnsiString)) != Dialect.GetTypeName(new SqlType(DbType.String));
46+
}
47+
3948
protected override void OnSetUp()
4049
{
4150
using (var session = OpenSession())
4251
using (var transaction = session.BeginTransaction())
4352
{
44-
var e1 = new Entity { Name = "Bob" };
53+
var e1 = new Entity {Name = "Bob"};
4554
session.Save(e1);
4655

47-
var e2 = new Entity { Name = "Sally" };
56+
var e2 = new Entity {Name = "Sally"};
4857
session.Save(e2);
4958

5059
transaction.Commit();
@@ -65,12 +74,12 @@ protected override void OnTearDown()
6574
[Test]
6675
public async Task ParameterTypeForLikeIsProperlyDetectedAsync()
6776
{
68-
using(var logSpy = new SqlLogSpy())
77+
using (var logSpy = new SqlLogSpy())
6978
using (var session = OpenSession())
7079
{
7180
var result = from e in session.Query<Entity>()
72-
where NHibernate.Linq.SqlMethods.Like(e.Name, "Bob")
73-
select e;
81+
where NHibernate.Linq.SqlMethods.Like(e.Name, "Bob")
82+
select e;
7483

7584
Assert.That(await (result.ToListAsync()), Has.Count.EqualTo(1));
7685
Assert.That(logSpy.GetWholeLog(), Does.Contain("Type: AnsiString"));
@@ -81,12 +90,12 @@ where NHibernate.Linq.SqlMethods.Like(e.Name, "Bob")
8190
[Test]
8291
public async Task ParameterTypeForContainsIsProperlyDetectedAsync()
8392
{
84-
using(var logSpy = new SqlLogSpy())
93+
using (var logSpy = new SqlLogSpy())
8594
using (var session = OpenSession())
8695
{
8796
var result = from e in session.Query<Entity>()
88-
where e.Name.Contains("Bob")
89-
select e;
97+
where e.Name.Contains("Bob")
98+
select e;
9099

91100
Assert.That(await (result.ToListAsync()), Has.Count.EqualTo(1));
92101
Assert.That(logSpy.GetWholeLog(), Does.Contain("Type: AnsiString"));
@@ -97,12 +106,12 @@ where e.Name.Contains("Bob")
97106
[Test]
98107
public async Task ParameterTypeForStartsWithIsProperlyDetectedAsync()
99108
{
100-
using(var logSpy = new SqlLogSpy())
109+
using (var logSpy = new SqlLogSpy())
101110
using (var session = OpenSession())
102111
{
103112
var result = from e in session.Query<Entity>()
104-
where e.Name.StartsWith("Bob")
105-
select e;
113+
where e.Name.StartsWith("Bob")
114+
select e;
106115

107116
Assert.That(await (result.ToListAsync()), Has.Count.EqualTo(1));
108117
Assert.That(logSpy.GetWholeLog(), Does.Contain("Type: AnsiString"));

src/NHibernate.Test/NHSpecificTest/NH3565/FixtureByCode.cs

+21-12
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
1-
using System.Linq;
1+
using System.Data;
2+
using System.Linq;
23
using NHibernate.Cfg.MappingSchema;
34
using NHibernate.Mapping.ByCode;
5+
using NHibernate.SqlTypes;
46
using NUnit.Framework;
57

68
namespace NHibernate.Test.NHSpecificTest.NH3565
@@ -24,15 +26,22 @@ protected override HbmMapping GetMappings()
2426
return mapper.CompileMappingForAllExplicitlyAddedEntities();
2527
}
2628

29+
protected override bool AppliesTo(Dialect.Dialect dialect)
30+
{
31+
return base.AppliesTo(dialect)
32+
//Dialects like SQL Server CE, Firebird don't distinguish AnsiString from String
33+
&& Dialect.GetTypeName(new SqlType(DbType.AnsiString)) != Dialect.GetTypeName(new SqlType(DbType.String));
34+
}
35+
2736
protected override void OnSetUp()
2837
{
2938
using (var session = OpenSession())
3039
using (var transaction = session.BeginTransaction())
3140
{
32-
var e1 = new Entity { Name = "Bob" };
41+
var e1 = new Entity {Name = "Bob"};
3342
session.Save(e1);
3443

35-
var e2 = new Entity { Name = "Sally" };
44+
var e2 = new Entity {Name = "Sally"};
3645
session.Save(e2);
3746

3847
transaction.Commit();
@@ -53,12 +62,12 @@ protected override void OnTearDown()
5362
[Test]
5463
public void ParameterTypeForLikeIsProperlyDetected()
5564
{
56-
using(var logSpy = new SqlLogSpy())
65+
using (var logSpy = new SqlLogSpy())
5766
using (var session = OpenSession())
5867
{
5968
var result = from e in session.Query<Entity>()
60-
where NHibernate.Linq.SqlMethods.Like(e.Name, "Bob")
61-
select e;
69+
where NHibernate.Linq.SqlMethods.Like(e.Name, "Bob")
70+
select e;
6271

6372
Assert.That(result.ToList(), Has.Count.EqualTo(1));
6473
Assert.That(logSpy.GetWholeLog(), Does.Contain("Type: AnsiString"));
@@ -69,12 +78,12 @@ where NHibernate.Linq.SqlMethods.Like(e.Name, "Bob")
6978
[Test]
7079
public void ParameterTypeForContainsIsProperlyDetected()
7180
{
72-
using(var logSpy = new SqlLogSpy())
81+
using (var logSpy = new SqlLogSpy())
7382
using (var session = OpenSession())
7483
{
7584
var result = from e in session.Query<Entity>()
76-
where e.Name.Contains("Bob")
77-
select e;
85+
where e.Name.Contains("Bob")
86+
select e;
7887

7988
Assert.That(result.ToList(), Has.Count.EqualTo(1));
8089
Assert.That(logSpy.GetWholeLog(), Does.Contain("Type: AnsiString"));
@@ -85,12 +94,12 @@ where e.Name.Contains("Bob")
8594
[Test]
8695
public void ParameterTypeForStartsWithIsProperlyDetected()
8796
{
88-
using(var logSpy = new SqlLogSpy())
97+
using (var logSpy = new SqlLogSpy())
8998
using (var session = OpenSession())
9099
{
91100
var result = from e in session.Query<Entity>()
92-
where e.Name.StartsWith("Bob")
93-
select e;
101+
where e.Name.StartsWith("Bob")
102+
select e;
94103

95104
Assert.That(result.ToList(), Has.Count.EqualTo(1));
96105
Assert.That(logSpy.GetWholeLog(), Does.Contain("Type: AnsiString"));

0 commit comments

Comments
 (0)