1
1
using System . Collections ;
2
2
using System . Reflection ;
3
3
using NHibernate . Transform ;
4
+ using NHibernate . Util ;
4
5
using NUnit . Framework ;
5
6
6
7
namespace NHibernate . Test . TransformTests
@@ -95,7 +96,7 @@ public class BasePrivateFieldSimpleDTO2
95
96
#pragma warning disable CS0649
96
97
private object _id ;
97
98
#pragma warning restore CS0649
98
- public object iD { get { return _id ; } }
99
+ public object iD => _id ;
99
100
}
100
101
101
102
public class PrivateInheritedFieldsSimpleDTO2 : BasePrivateFieldSimpleDTO2
@@ -241,19 +242,30 @@ public void ToPropertiesInsensitivelyDuplicated_WithoutAnyProjections()
241
242
}
242
243
}
243
244
244
- private void AssertCardinalityNameAndId < T > ( string queryString = "select * from Simple" )
245
+ [ Test ]
246
+ public void Serialization ( )
247
+ {
248
+ AssertSerialization < PublicPropertiesSimpleDTO > ( ) ;
249
+ AssertSerialization < PrivateFieldsSimpleDTO > ( ) ;
250
+ AssertSerialization < PublicInheritedPropertiesSimpleDTO > ( ) ;
251
+ AssertSerialization < PrivateInheritedFieldsSimpleDTO > ( ) ;
252
+ AssertSerialization < NewPropertiesSimpleDTO > ( ) ;
253
+ }
254
+
255
+ private void AssertCardinalityNameAndId < T > ( IResultTransformer transformer = null )
245
256
{
246
257
using ( var s = OpenSession ( ) )
247
258
{
248
- var transformer = Transformers . AliasToBean < T > ( ) ;
249
- var l = s . CreateSQLQuery ( queryString )
259
+ transformer = transformer ?? Transformers . AliasToBean < T > ( ) ;
260
+ var l = s . CreateSQLQuery ( "select * from Simple" )
250
261
. SetResultTransformer ( transformer )
251
262
. List < T > ( ) ;
252
- Assert . That ( l . Count , Is . EqualTo ( 2 ) ) ;
253
- Assert . That ( l , Has . All . Not . Null ) ;
254
- Assert . That ( l , Has . Some . Property ( "Name" ) . EqualTo ( "Name1" ) ) ;
255
- Assert . That ( l , Has . Some . Property ( "Name" ) . EqualTo ( "Name2" ) ) ;
256
- Assert . That ( l , Has . All . Property ( "Id" ) . Not . Null ) ;
263
+ var testClass = typeof ( T ) . Name ;
264
+ Assert . That ( l . Count , Is . EqualTo ( 2 ) , testClass ) ;
265
+ Assert . That ( l , Has . All . Not . Null , testClass ) ;
266
+ Assert . That ( l , Has . Some . Property ( "Name" ) . EqualTo ( "Name1" ) , testClass ) ;
267
+ Assert . That ( l , Has . Some . Property ( "Name" ) . EqualTo ( "Name2" ) , testClass ) ;
268
+ Assert . That ( l , Has . All . Property ( "Id" ) . Not . Null , testClass ) ;
257
269
}
258
270
}
259
271
@@ -265,23 +277,20 @@ private void AssertCardinalityAndSomething<T>(string queryString = "select s.Nam
265
277
var l = s . CreateSQLQuery ( queryString )
266
278
. SetResultTransformer ( transformer )
267
279
. List < T > ( ) ;
268
- Assert . That ( l . Count , Is . EqualTo ( 2 ) ) ;
269
- Assert . That ( l , Has . All . Not . Null ) ;
270
- Assert . That ( l , Has . Some . Property ( "Something" ) . EqualTo ( "Name1" ) ) ;
271
- Assert . That ( l , Has . Some . Property ( "Something" ) . EqualTo ( "Name2" ) ) ;
280
+ var testClass = typeof ( T ) . Name ;
281
+ Assert . That ( l . Count , Is . EqualTo ( 2 ) , testClass ) ;
282
+ Assert . That ( l , Has . All . Not . Null , testClass ) ;
283
+ Assert . That ( l , Has . Some . Property ( "Something" ) . EqualTo ( "Name1" ) , testClass ) ;
284
+ Assert . That ( l , Has . Some . Property ( "Something" ) . EqualTo ( "Name2" ) , testClass ) ;
272
285
}
273
286
}
274
287
275
- private void AssertParameterLessCtorAreWorking ( string queryString )
288
+ private void AssertSerialization < T > ( )
276
289
{
277
- using ( var s = OpenSession ( ) )
278
- {
279
- var l =
280
- s . CreateSQLQuery ( queryString ) . SetResultTransformer (
281
- Transformers . AliasToBean < PublicParameterLessCtor > ( ) ) . List < PublicParameterLessCtor > ( ) ;
282
- Assert . That ( l . Count , Is . EqualTo ( 2 ) ) ;
283
- Assert . That ( l , Has . All . Not . Null ) ;
284
- }
290
+ var transformer = Transformers . AliasToBean < T > ( ) ;
291
+ var bytes = SerializationHelper . Serialize ( transformer ) ;
292
+ transformer = ( IResultTransformer ) SerializationHelper . Deserialize ( bytes ) ;
293
+ AssertCardinalityNameAndId < T > ( transformer : transformer ) ;
285
294
}
286
295
}
287
296
}
0 commit comments