Skip to content

Commit dcd2568

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

File tree

3 files changed

+137
-23
lines changed

3 files changed

+137
-23
lines changed
Lines changed: 96 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,96 @@
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 NHibernate.Cfg;
12+
using NHibernate.Event;
13+
using NUnit.Framework;
14+
15+
namespace NHibernate.Test.NHSpecificTest.GH2734
16+
{
17+
using System.Threading.Tasks;
18+
[TestFixture]
19+
public class FixtureAsync : BugTestCase
20+
{
21+
protected override void Configure(Configuration configuration)
22+
{
23+
configuration.EventListeners.PreUpdateEventListeners = new IPreUpdateEventListener[]
24+
{
25+
new AuditEventListener()
26+
};
27+
28+
configuration.SetInterceptor(new AuditInterceptor());
29+
base.Configure(configuration);
30+
}
31+
32+
protected override void OnSetUp()
33+
{
34+
using (var session = OpenSession())
35+
using (var transaction = session.BeginTransaction())
36+
{
37+
var e1 = new LoggerBase
38+
{
39+
Description = "Case1",
40+
Solution = "SolutionText",
41+
Journal = new Journal { CreatedByName = "X", CreatedDate = System.DateTime.Now }
42+
};
43+
session.Save(e1);
44+
45+
var e2 = new LoggerBase
46+
{
47+
Description = "Case2",
48+
Solution = "SolutionText",
49+
Journal = new Journal { CreatedByName = "Y", CreatedDate = System.DateTime.Now }
50+
};
51+
session.Save(e2);
52+
53+
transaction.Commit();
54+
}
55+
}
56+
57+
protected override void OnTearDown()
58+
{
59+
using (var session = OpenSession())
60+
using (var transaction = session.BeginTransaction())
61+
{
62+
session.CreateQuery("delete from System.Object").ExecuteUpdate();
63+
64+
transaction.Commit();
65+
}
66+
}
67+
68+
[Test]
69+
public async Task YourTestNameAsync()
70+
{
71+
long id = 1;
72+
73+
using(new SqlLogSpy())
74+
using (var session = OpenSession())
75+
using (var transaction = session.BeginTransaction())
76+
{
77+
var result = await (session.GetAsync<LoggerBase>(id));
78+
79+
result.Solution = "xxxxxxxxxxxxxxx";
80+
await (session.SaveOrUpdateAsync(result));
81+
await (transaction.CommitAsync());
82+
}
83+
84+
using(new SqlLogSpy())
85+
using (var session = OpenSession())
86+
using (var transaction = session.BeginTransaction())
87+
{
88+
var result = await (session.GetAsync<LoggerBase>(id));
89+
90+
result.Solution = $"xxxxxxxxxxxxxxx{System.DateTime.Now.Ticks}";
91+
await (session.SaveOrUpdateAsync(result));
92+
await (transaction.CommitAsync());
93+
}
94+
}
95+
}
96+
}

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

Lines changed: 20 additions & 11 deletions
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

Lines changed: 21 additions & 12 deletions
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)