11using System ;
22using System . Collections ;
3- using System . Data . Common ;
43using NHibernate . Connection ;
54using NHibernate . DomainModel . NHSpecific ;
65using NUnit . Framework ;
@@ -14,8 +13,15 @@ namespace NHibernate.Test.NHSpecificTest
1413 public class UserTypeFixture : TestCase
1514 {
1615 protected override IList Mappings
16+ => new [ ] { "NHSpecific.ClassWithNullColumns.hbm.xml" } ;
17+
18+ protected override void OnTearDown ( )
1719 {
18- get { return new string [ ] { "NHSpecific.ClassWithNullColumns.hbm.xml" } ; }
20+ using ( var s = OpenSession ( ) )
21+ {
22+ s . Delete ( "from ClassWithNullColumns" ) ;
23+ s . Flush ( ) ;
24+ }
1925 }
2026
2127 /// <summary>
@@ -25,40 +31,50 @@ protected override IList Mappings
2531 [ Test ]
2632 public void InsertNull ( )
2733 {
28- using ( ISession s = OpenSession ( ) )
34+ using ( var s = OpenSession ( ) )
2935 {
30- ClassWithNullColumns userTypeClass = new ClassWithNullColumns ( ) ;
31- userTypeClass . Id = 5 ;
32- userTypeClass . FirstInt32 = 4 ;
33- userTypeClass . SecondInt32 = 0 ; // with the user type should set value to null
36+ var userTypeClass = new ClassWithNullColumns
37+ {
38+ Id = 5 ,
39+ FirstInt32 = 4 ,
40+ SecondInt32 = 0
41+ } ;
42+ // with the user type should set 0 value to null
3443
3544 s . Save ( userTypeClass ) ;
3645 s . Flush ( ) ;
3746 }
3847
3948 // manually read from the db
40- IConnectionProvider provider = ConnectionProviderFactory . NewConnectionProvider ( cfg . Properties ) ;
41- var conn = provider . GetConnection ( ) ;
42- var cmd = conn . CreateCommand ( ) ;
43- cmd . Connection = conn ;
44- cmd . CommandText = "select * from usertype" ;
45-
46- var reader = cmd . ExecuteReader ( ) ;
47-
48- while ( reader . Read ( ) )
49+ using ( var provider = ConnectionProviderFactory . NewConnectionProvider ( cfg . Properties ) )
4950 {
50- Assert . AreEqual ( 5 , reader [ 0 ] ) ;
51- Assert . AreEqual ( 4 , reader [ 1 ] ) ;
52- Assert . AreEqual ( DBNull . Value , reader [ 2 ] ) ;
53- break ;
54- }
55-
56- conn . Close ( ) ;
51+ var conn = provider . GetConnection ( ) ;
52+ try
53+ {
54+ using ( var cmd = conn . CreateCommand ( ) )
55+ {
56+ cmd . Connection = conn ;
57+ cmd . CommandText = "select * from usertype" ;
5758
58- using ( ISession s = OpenSession ( ) )
59- {
60- s . Delete ( "from ClassWithNullColumns" ) ;
61- s . Flush ( ) ;
59+ using ( var reader = cmd . ExecuteReader ( ) )
60+ {
61+ var idOrdinal = reader . GetOrdinal ( "id" ) ;
62+ var firstOrdinal = reader . GetOrdinal ( "f_int32" ) ;
63+ var secondOrdinal = reader . GetOrdinal ( "s_int32" ) ;
64+ while ( reader . Read ( ) )
65+ {
66+ Assert . AreEqual ( 5 , reader [ idOrdinal ] ) ;
67+ Assert . AreEqual ( 4 , reader [ firstOrdinal ] ) ;
68+ Assert . AreEqual ( DBNull . Value , reader [ secondOrdinal ] ) ;
69+ break ;
70+ }
71+ }
72+ }
73+ }
74+ finally
75+ {
76+ provider . CloseConnection ( conn ) ;
77+ }
6278 }
6379 }
6480 }
0 commit comments