19
19
namespace NHibernate . Test . NHSpecificTest . GH3530
20
20
{
21
21
using System . Threading . Tasks ;
22
+ using System . Threading ;
22
23
[ TestFixture ]
23
24
public class FixtureAsync : BugTestCase
24
25
{
@@ -117,12 +118,10 @@ private string GetQualifiedName(string catalog, string schema, string name)
117
118
return Dialect . Qualify ( catalog , schema , name ) ;
118
119
}
119
120
120
- [ TestCaseSource ( nameof ( GetTestCases ) ) ]
121
- public async Task TestLocalesAsync ( CultureInfo from , CultureInfo to )
121
+ [ Test , TestCaseSource ( nameof ( GetTestCases ) ) ]
122
+ public async Task TestDateTimeAsync ( CultureInfo from , CultureInfo to )
122
123
{
123
124
DateTime leapDay = new DateTime ( 2024 , 2 , 29 , new GregorianCalendar ( GregorianCalendarTypes . USEnglish ) ) ;
124
- double doubleValue = 12.3f ;
125
- int intValue = 4 ;
126
125
object id ;
127
126
128
127
CurrentCulture = from ;
@@ -131,9 +130,7 @@ public async Task TestLocalesAsync(CultureInfo from, CultureInfo to)
131
130
{
132
131
var entity = new LocaleEntity ( )
133
132
{
134
- DateTimeValue = leapDay ,
135
- DoubleValue = doubleValue ,
136
- IntegerValue = intValue ,
133
+ DateTimeValue = leapDay
137
134
} ;
138
135
139
136
id = await ( session . SaveAsync ( entity ) ) ;
@@ -147,11 +144,95 @@ public async Task TestLocalesAsync(CultureInfo from, CultureInfo to)
147
144
var entity = await ( session . GetAsync < LocaleEntity > ( id ) ) ;
148
145
149
146
Assert . AreEqual ( leapDay , entity . DateTimeValue ) ;
150
- Assert . AreEqual ( intValue , entity . IntegerValue ) ;
147
+ }
148
+ }
149
+
150
+ [ Test , TestCaseSource ( nameof ( GetTestCases ) ) ]
151
+ public async Task TestDecimalAsync ( CultureInfo from , CultureInfo to )
152
+ {
153
+ decimal decimalValue = 12.3m ;
154
+ object id ;
155
+
156
+ CurrentCulture = from ;
157
+ using ( var session = OpenSession ( ) )
158
+ using ( var tx = session . BeginTransaction ( ) )
159
+ {
160
+ var entity = new LocaleEntity ( )
161
+ {
162
+ DecimalValue = decimalValue
163
+ } ;
164
+
165
+ id = await ( session . SaveAsync ( entity ) ) ;
166
+ await ( tx . CommitAsync ( ) ) ;
167
+ }
168
+
169
+ CurrentCulture = to ;
170
+ using ( var session = OpenSession ( ) )
171
+ using ( var tx = session . BeginTransaction ( ) )
172
+ {
173
+ var entity = await ( session . GetAsync < LocaleEntity > ( id ) ) ;
174
+
175
+ Assert . AreEqual ( decimalValue , entity . DecimalValue ) ;
176
+ }
177
+ }
178
+
179
+ [ Test , TestCaseSource ( nameof ( GetTestCases ) ) ]
180
+ public async Task TestDoubleAsync ( CultureInfo from , CultureInfo to )
181
+ {
182
+ double doubleValue = 12.3d ;
183
+ object id ;
184
+
185
+ CurrentCulture = from ;
186
+ using ( var session = OpenSession ( ) )
187
+ using ( var tx = session . BeginTransaction ( ) )
188
+ {
189
+ var entity = new LocaleEntity ( )
190
+ {
191
+ DoubleValue = doubleValue
192
+ } ;
193
+
194
+ id = await ( session . SaveAsync ( entity ) ) ;
195
+ await ( tx . CommitAsync ( ) ) ;
196
+ }
197
+
198
+ CurrentCulture = to ;
199
+ using ( var session = OpenSession ( ) )
200
+ using ( var tx = session . BeginTransaction ( ) )
201
+ {
202
+ var entity = await ( session . GetAsync < LocaleEntity > ( id ) ) ;
203
+
151
204
Assert . True ( doubleValue - entity . DoubleValue < double . Epsilon ) ;
152
205
}
153
206
}
154
207
208
+ public async Task TestIntegerAsync ( CultureInfo from , CultureInfo to , CancellationToken cancellationToken = default ( CancellationToken ) )
209
+ {
210
+ int integerValue = 123 ;
211
+ object id ;
212
+
213
+ CurrentCulture = from ;
214
+ using ( var session = OpenSession ( ) )
215
+ using ( var tx = session . BeginTransaction ( ) )
216
+ {
217
+ var entity = new LocaleEntity ( )
218
+ {
219
+ IntegerValue = integerValue
220
+ } ;
221
+
222
+ id = await ( session . SaveAsync ( entity , cancellationToken ) ) ;
223
+ await ( tx . CommitAsync ( cancellationToken ) ) ;
224
+ }
225
+
226
+ CurrentCulture = to ;
227
+ using ( var session = OpenSession ( ) )
228
+ using ( var tx = session . BeginTransaction ( ) )
229
+ {
230
+ var entity = await ( session . GetAsync < LocaleEntity > ( id , cancellationToken ) ) ;
231
+
232
+ Assert . AreEqual ( integerValue , entity . IntegerValue ) ;
233
+ }
234
+ }
235
+
155
236
private CultureInfo CurrentCulture
156
237
{
157
238
get
0 commit comments