Skip to content

Commit 5069819

Browse files
committed
Modifications after code review
1 parent 43f8514 commit 5069819

File tree

7 files changed

+295
-229
lines changed

7 files changed

+295
-229
lines changed

src/NHibernate.Test/Async/NHSpecificTest/NH3403/Fixture.cs renamed to src/NHibernate.Test/Async/NHSpecificTest/GH1300/Fixture.cs

Lines changed: 69 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,10 @@
1919
using NHibernate.Engine;
2020
using NHibernate.Exceptions;
2121
using NHibernate.Linq;
22+
using NHibernate.Type;
2223
using NUnit.Framework;
2324

24-
namespace NHibernate.Test.NHSpecificTest.NH3403
25+
namespace NHibernate.Test.NHSpecificTest.GH1300
2526
{
2627
using System.Threading.Tasks;
2728
using System.Threading;
@@ -51,8 +52,8 @@ protected override void Configure(Configuration configuration)
5152

5253
protected override void OnTearDown()
5354
{
54-
using (ISession session = OpenSession())
55-
using (ITransaction transaction = session.BeginTransaction())
55+
using (var session = OpenSession())
56+
using (var transaction = session.BeginTransaction())
5657
{
5758
session.Delete("from System.Object");
5859

@@ -64,8 +65,8 @@ protected override void OnTearDown()
6465
protected override void OnSetUp()
6566
{
6667
base.OnSetUp();
67-
using (ISession session = OpenSession())
68-
using (ITransaction transaction = session.BeginTransaction())
68+
using (var session = OpenSession())
69+
using (var transaction = session.BeginTransaction())
6970
{
7071
var e1 = new Entity { Name = "Bob" };
7172
session.Save(e1);
@@ -78,16 +79,16 @@ public async Task InsertShouldUseMappedSizeAsync()
7879
{
7980
Driver.ClearCommands();
8081

81-
using (ISession session = OpenSession())
82-
using (ITransaction transaction = session.BeginTransaction())
82+
using (var session = OpenSession())
83+
using (var transaction = session.BeginTransaction())
8384
{
8485
var e1 = new Entity { Name = "Al", AnsiName = "Al" };
8586
await (session.SaveAsync(e1));
8687
await (transaction.CommitAsync());
87-
Assert.AreEqual(SqlDbType.NVarChar, Driver.LastCommandParameters.First().SqlDbType);
88-
Assert.AreEqual(3, Driver.LastCommandParameters.First().Size);
89-
Assert.AreEqual(SqlDbType.VarChar, Driver.LastCommandParameters.Last().SqlDbType);
90-
Assert.AreEqual(3, Driver.LastCommandParameters.Last().Size);
88+
Assert.That(Driver.LastCommandParameters.First().SqlDbType, Is.EqualTo(SqlDbType.NVarChar));
89+
Assert.That(Driver.LastCommandParameters.First().Size, Is.EqualTo(3));
90+
Assert.That(Driver.LastCommandParameters.Last().SqlDbType, Is.EqualTo(SqlDbType.VarChar));
91+
Assert.That(Driver.LastCommandParameters.Last().Size, Is.EqualTo(3));
9192
}
9293
}
9394

@@ -96,8 +97,8 @@ public void InsertWithTooLongValuesShouldThrowAsync()
9697
{
9798
Driver.ClearCommands();
9899

99-
using (ISession session = OpenSession())
100-
using (ITransaction transaction = session.BeginTransaction())
100+
using (var session = OpenSession())
101+
using (var transaction = session.BeginTransaction())
101102
{
102103
var e1 = new Entity { Name = "Alal", AnsiName = "Alal" };
103104

@@ -109,7 +110,7 @@ public void InsertWithTooLongValuesShouldThrowAsync()
109110
});
110111

111112
var sqlEx = ex.InnerException as SqlException;
112-
Assert.IsNotNull(sqlEx);
113+
Assert.That(sqlEx, Is.Not.Null);
113114
Assert.That(sqlEx.Number, Is.EqualTo(8152));
114115
}
115116
}
@@ -120,8 +121,8 @@ public void InsertWithTooLongValuesShouldThrowAsync()
120121
{
121122
Driver.ClearCommands();
122123

123-
using (ISession session = OpenSession())
124-
using (ITransaction transaction = session.BeginTransaction())
124+
using (var session = OpenSession())
125+
using (var transaction = session.BeginTransaction())
125126
{
126127
if (property == "Name")
127128
{
@@ -131,24 +132,59 @@ public void InsertWithTooLongValuesShouldThrowAsync()
131132
{
132133
await (session.Query<Entity>().Where(x => x.AnsiName == "Bob").ToListAsync(cancellationToken));
133134
}
134-
Assert.AreEqual(3, Driver.LastCommandParameters.First().Size);
135-
Assert.AreEqual(expectedDbType, Driver.LastCommandParameters.First().SqlDbType);
135+
Assert.That(Driver.LastCommandParameters.First().Size, Is.EqualTo(3));
136+
Assert.That(Driver.LastCommandParameters.First().SqlDbType, Is.EqualTo(expectedDbType));
136137
}
137138
}
138-
139+
140+
[Test]
141+
public async Task MappedAsShouldUseExplicitSizeAsync()
142+
{
143+
Driver.ClearCommands();
144+
145+
using (var session = OpenSession())
146+
using (var transaction = session.BeginTransaction())
147+
{
148+
await (session.Query<Entity>().Where(x => x.Name == "Bob".MappedAs(TypeFactory.Basic("AnsiString(200)"))).ToListAsync());
149+
150+
Assert.That(Driver.LastCommandParameters.First().Size, Is.EqualTo(200));
151+
Assert.That(Driver.LastCommandParameters.First().SqlDbType, Is.EqualTo(SqlDbType.VarChar));
152+
}
153+
}
154+
155+
[Test]
156+
public async Task LongStringCausesClobSizedParameterAsync()
157+
{
158+
Driver.ClearCommands();
159+
160+
using (var session = OpenSession())
161+
using (var transaction = session.BeginTransaction())
162+
{
163+
await (session.Query<Entity>().Where(x => x.Name == new string('x', MsSql2000Dialect.MaxSizeForLengthLimitedString + 1)).ToListAsync());
164+
165+
Assert.That(Driver.LastCommandParameters.First().Size, Is.EqualTo(MsSql2000Dialect.MaxSizeForClob));
166+
Assert.That(Driver.LastCommandParameters.First().SqlDbType, Is.EqualTo(SqlDbType.NVarChar));
167+
168+
await (session.Query<Entity>().Where(x => x.AnsiName == new string('x', MsSql2000Dialect.MaxSizeForLengthLimitedAnsiString + 1)).ToListAsync());
169+
170+
Assert.That(Driver.LastCommandParameters.First().Size, Is.EqualTo(MsSql2000Dialect.MaxSizeForAnsiClob));
171+
Assert.That(Driver.LastCommandParameters.First().SqlDbType, Is.EqualTo(SqlDbType.VarChar));
172+
}
173+
}
174+
139175
[TestCase("Name", SqlDbType.NVarChar)]
140176
[TestCase("AnsiName", SqlDbType.VarChar)]
141177
public async Task HqlLikeShouldUseLargerSizeAsync(string property, SqlDbType expectedDbType, CancellationToken cancellationToken = default(CancellationToken))
142178
{
143179
Driver.ClearCommands();
144180

145-
using (ISession session = OpenSession())
146-
using (ITransaction transaction = session.BeginTransaction())
181+
using (var session = OpenSession())
182+
using (var transaction = session.BeginTransaction())
147183
{
148184
await (session.CreateQuery("from Entity where " + property + " like :name").SetParameter("name", "%Bob%").ListAsync<Entity>(cancellationToken));
149185

150-
Assert.GreaterOrEqual(Driver.LastCommandParameters.First().Size, 5);
151-
Assert.AreEqual(expectedDbType, Driver.LastCommandParameters.First().SqlDbType);
186+
Assert.That(Driver.LastCommandParameters.First().Size, Is.GreaterThanOrEqualTo(5));
187+
Assert.That(Driver.LastCommandParameters.First().SqlDbType, Is.EqualTo(expectedDbType));
152188
}
153189
}
154190

@@ -158,38 +194,35 @@ public void InsertWithTooLongValuesShouldThrowAsync()
158194
{
159195
Driver.ClearCommands();
160196

161-
using (ISession session = OpenSession())
162-
using (ITransaction transaction = session.BeginTransaction())
197+
using (var session = OpenSession())
198+
using (var transaction = session.BeginTransaction())
163199
{
164200
Driver.ClearCommands();
165201

166202
await (session.CreateCriteria<Entity>().Add(Restrictions.Eq(property, "Bob"))
167203
.ListAsync<Entity>(cancellationToken));
168204

169-
Assert.GreaterOrEqual(Driver.LastCommandParameters.First().Size, 3);
170-
Assert.AreEqual(expectedDbType, Driver.LastCommandParameters.First().SqlDbType);
205+
Assert.That(Driver.LastCommandParameters.First().Size, Is.GreaterThanOrEqualTo(3));
206+
Assert.That(Driver.LastCommandParameters.First().SqlDbType, Is.EqualTo(expectedDbType));
171207
}
172208
}
173-
209+
174210
[TestCase("Name", SqlDbType.NVarChar)]
175211
[TestCase("AnsiName", SqlDbType.VarChar)]
176212
public async Task CriteriaLikeShouldUseLargerSizeAsync(string property, SqlDbType expectedDbType, CancellationToken cancellationToken = default(CancellationToken))
177213
{
178214
Driver.ClearCommands();
179215

180-
using (ISession session = OpenSession())
181-
using (ITransaction transaction = session.BeginTransaction())
216+
using (var session = OpenSession())
217+
using (var transaction = session.BeginTransaction())
182218
{
183219
await (session.CreateCriteria<Entity>().Add(Restrictions.Like(property, "%Bob%"))
184220
.ListAsync<Entity>(cancellationToken));
185221

186-
Assert.GreaterOrEqual(Driver.LastCommandParameters.First().Size, 5);
187-
Assert.AreEqual(expectedDbType, Driver.LastCommandParameters.First().SqlDbType);
222+
Assert.That(Driver.LastCommandParameters.First().Size, Is.GreaterThanOrEqualTo(5));
223+
Assert.That(Driver.LastCommandParameters.First().SqlDbType, Is.EqualTo(expectedDbType));
188224
}
189225
}
190-
private TestSqlClientDriver Driver
191-
{
192-
get { return Sfi.ConnectionProvider.Driver as TestSqlClientDriver; }
193-
}
226+
private TestSqlClientDriver Driver => Sfi.ConnectionProvider.Driver as TestSqlClientDriver;
194227
}
195228
}

src/NHibernate.Test/NHSpecificTest/NH3403/Entity.cs renamed to src/NHibernate.Test/NHSpecificTest/GH1300/Entity.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
namespace NHibernate.Test.NHSpecificTest.NH3403
1+
namespace NHibernate.Test.NHSpecificTest.GH1300
22
{
33
class Entity
44
{

0 commit comments

Comments
 (0)