Skip to content

Commit db08376

Browse files
Generate async files
1 parent 6f7c2e9 commit db08376

File tree

1 file changed

+36
-82
lines changed
  • src/NHibernate.Test/Async/NHSpecificTest/GH3530

1 file changed

+36
-82
lines changed

src/NHibernate.Test/Async/NHSpecificTest/GH3530/Fixture.cs

+36-82
Original file line numberDiff line numberDiff line change
@@ -49,23 +49,28 @@ protected override void OnTearDown()
4949
}
5050

5151
protected override void CreateSchema()
52+
{
53+
CreateTable("Integer");
54+
CreateTable("DateTime");
55+
CreateTable("Double");
56+
CreateTable("Decimal");
57+
}
58+
59+
private void CreateTable(string name)
5260
{
5361
var sb = new StringBuilder();
5462
var guidType = Dialect.GetTypeName(SqlTypeFactory.Guid);
5563
var stringType = Dialect.GetTypeName(SqlTypeFactory.GetAnsiString(255));
5664

5765
var catalog = GetQuotedDefaultCatalog();
5866
var schema = GetQuotedDefaultSchema();
59-
var table = GetQualifiedName(catalog, schema, "LocaleEntity");
67+
var table = GetQualifiedName(catalog, schema, $"{name}Entity");
6068

6169
sb.Append($"{Dialect.CreateTableString} {table} (");
6270

6371
// Generate columns
6472
sb.Append($"Id {guidType}, ");
65-
sb.Append($"IntegerValue {stringType}, ");
66-
sb.Append($"DateTimeValue {stringType}, ");
67-
sb.Append($"DoubleValue {stringType}, ");
68-
sb.Append($"DecimalValue {stringType}");
73+
sb.Append($"Value {stringType}, ");
6974

7075
// Add the primary key contraint for the identity column
7176
sb.Append($", {Dialect.PrimaryKeyString} ( Id )");
@@ -93,7 +98,7 @@ private string GetQuotedDefaultCatalog()
9398
var t = cfg.GetType();
9499
var getQuotedDefaultCatalog = t.GetMethod("GetQuotedDefaultCatalog", BindingFlags.Instance | BindingFlags.NonPublic);
95100

96-
return (string)getQuotedDefaultCatalog.Invoke(cfg, [Dialect]);
101+
return (string) getQuotedDefaultCatalog.Invoke(cfg, [Dialect]);
97102
}
98103

99104
private string GetQuotedDefaultSchema()
@@ -109,119 +114,68 @@ private string GetQualifiedName(string catalog, string schema, string name)
109114
return Dialect.Qualify(catalog, schema, name);
110115
}
111116

112-
[Test, TestCaseSource(nameof(GetTestCases))]
113-
public async Task TestDateTimeAsync(CultureInfo from, CultureInfo to)
117+
private async Task PerformTestAsync<T, U>(CultureInfo from, CultureInfo to, T expectedValue, Action<T, T> assert, CancellationToken cancellationToken = default(CancellationToken))
118+
where T : struct
119+
where U : Entity<T>, new()
114120
{
115-
DateTime leapDay = new DateTime(2024, 2, 29, new GregorianCalendar(GregorianCalendarTypes.USEnglish));
116121
object id;
117122

118123
CurrentCulture = from;
119124
using (var session = OpenSession())
120125
using (var tx = session.BeginTransaction())
121126
{
122-
var entity = new LocaleEntity()
127+
var entity = new U()
123128
{
124-
DateTimeValue = leapDay
129+
Value = expectedValue
125130
};
126131

127-
id = await (session.SaveAsync(entity));
128-
await (tx.CommitAsync());
132+
id = await (session.SaveAsync(entity, cancellationToken));
133+
await (tx.CommitAsync(cancellationToken));
129134
}
130135

131136
CurrentCulture = to;
132137
using (var session = OpenSession())
133138
using (var tx = session.BeginTransaction())
134139
{
135-
var entity = await (session.GetAsync<LocaleEntity>(id));
140+
var entity = await (session.GetAsync<U>(id, cancellationToken));
136141

137-
Assert.AreEqual(leapDay, entity.DateTimeValue);
142+
assert(expectedValue, entity.Value);
138143
}
139144
}
140145

141146
[Test, TestCaseSource(nameof(GetTestCases))]
142-
public async Task TestDecimalAsync(CultureInfo from, CultureInfo to)
147+
public async Task TestDateTimeAsync(CultureInfo from, CultureInfo to)
143148
{
144-
decimal decimalValue = 12.3m;
145-
object id;
146-
147-
CurrentCulture = from;
148-
using (var session = OpenSession())
149-
using (var tx = session.BeginTransaction())
150-
{
151-
var entity = new LocaleEntity()
152-
{
153-
DecimalValue = decimalValue
154-
};
149+
DateTime leapDay = new DateTime(2024, 2, 29, new GregorianCalendar(GregorianCalendarTypes.USEnglish));
155150

156-
id = await (session.SaveAsync(entity));
157-
await (tx.CommitAsync());
158-
}
151+
await (PerformTestAsync<DateTime, DateTimeEntity>(from, to, leapDay, (expected, actual) => Assert.AreEqual(expected, actual)));
152+
}
159153

160-
CurrentCulture = to;
161-
using (var session = OpenSession())
162-
using (var tx = session.BeginTransaction())
163-
{
164-
var entity = await (session.GetAsync<LocaleEntity>(id));
154+
[Test, TestCaseSource(nameof(GetTestCases))]
155+
public async Task TestDecimalAsync(CultureInfo from, CultureInfo to)
156+
{
157+
decimal decimalValue = 12.3m;
165158

166-
Assert.AreEqual(decimalValue, entity.DecimalValue);
167-
}
159+
await (PerformTestAsync<decimal, DecimalEntity>(from, to, decimalValue, (expected, actual) => Assert.AreEqual(expected, actual)));
168160
}
169161

170162
[Test, TestCaseSource(nameof(GetTestCases))]
171163
public async Task TestDoubleAsync(CultureInfo from, CultureInfo to)
172164
{
173165
double doubleValue = 12.3d;
174-
object id;
175166

176-
CurrentCulture = from;
177-
using (var session = OpenSession())
178-
using (var tx = session.BeginTransaction())
179-
{
180-
var entity = new LocaleEntity()
181-
{
182-
DoubleValue = doubleValue
183-
};
184-
185-
id = await (session.SaveAsync(entity));
186-
await (tx.CommitAsync());
187-
}
188-
189-
CurrentCulture = to;
190-
using (var session = OpenSession())
191-
using (var tx = session.BeginTransaction())
192-
{
193-
var entity = await (session.GetAsync<LocaleEntity>(id));
194-
195-
Assert.True(Math.Abs(doubleValue - entity.DoubleValue) < double.Epsilon, $"Expected: {doubleValue}\nBut was: {entity.DoubleValue}\n");
196-
}
167+
await (PerformTestAsync<double, DoubleEntity>(from, to, doubleValue,
168+
(expected, actual) => Assert.True(Math.Abs(expected - actual) < double.Epsilon, $"Expected: {expected}\nBut was: {actual}\n")
169+
));
197170
}
198171

199-
public async Task TestIntegerAsync(CultureInfo from, CultureInfo to, CancellationToken cancellationToken = default(CancellationToken))
172+
[Test, TestCaseSource(nameof(GetTestCases))]
173+
174+
public async Task TestIntegerAsync(CultureInfo from, CultureInfo to)
200175
{
201176
int integerValue = 123;
202-
object id;
203177

204-
CurrentCulture = from;
205-
using (var session = OpenSession())
206-
using (var tx = session.BeginTransaction())
207-
{
208-
var entity = new LocaleEntity()
209-
{
210-
IntegerValue = integerValue
211-
};
212-
213-
id = await (session.SaveAsync(entity, cancellationToken));
214-
await (tx.CommitAsync(cancellationToken));
215-
}
216-
217-
CurrentCulture = to;
218-
using (var session = OpenSession())
219-
using (var tx = session.BeginTransaction())
220-
{
221-
var entity = await (session.GetAsync<LocaleEntity>(id, cancellationToken));
222-
223-
Assert.AreEqual(integerValue, entity.IntegerValue);
224-
}
178+
await (PerformTestAsync<int, IntegerEntity>(from, to, integerValue, (expected, actual) => Assert.AreEqual(expected, actual)));
225179
}
226180

227181
private CultureInfo CurrentCulture

0 commit comments

Comments
 (0)