@@ -7,215 +7,240 @@ namespace NHibernate.Test.NHSpecificTest.ManyToOneFilters20Behaviour
77 [ TestFixture ]
88 public class Fixture : BugTestCase
99 {
10- private static IList < Parent > joinGraphUsingHql ( ISession s )
10+ private static IList < Parent > JoinGraphUsingHql ( ISession s )
1111 {
1212 const string hql = @"select p from Parent p
13- join p.Child c";
13+ join p.Child c";
1414 return s . CreateQuery ( hql ) . List < Parent > ( ) ;
1515 }
1616
17- private static IList < Parent > joinGraphUsingCriteria ( ISession s )
17+ private static IList < Parent > JoinGraphUsingCriteria ( ISession s )
1818 {
1919 return s . CreateCriteria ( typeof ( Parent ) ) . SetFetchMode ( "Child" , FetchMode . Join ) . List < Parent > ( ) ;
2020 }
2121
22- private static Parent createParent ( )
22+ private static Parent CreateParent ( )
2323 {
2424 var ret = new Parent { Child = new Child ( ) } ;
2525 ret . Address = new Address { Parent = ret } ;
2626 return ret ;
2727 }
2828
29- private static void enableFilters ( ISession s )
29+ private static void EnableFilters ( ISession s )
3030 {
31- IFilter f = s . EnableFilter ( "activeChild" ) ;
31+ var f = s . EnableFilter ( "activeChild" ) ;
3232 f . SetParameter ( "active" , true ) ;
33- IFilter f2 = s . EnableFilter ( "alwaysValid" ) ;
33+ var f2 = s . EnableFilter ( "alwaysValid" ) ;
3434 f2 . SetParameter ( "always" , true ) ;
3535 }
3636
3737 protected override void OnTearDown ( )
3838 {
39- using ( ISession s = OpenSession ( ) )
39+ using ( var s = OpenSession ( ) )
40+ using ( var tx = s . BeginTransaction ( ) )
4041 {
41- using ( ITransaction tx = s . BeginTransaction ( ) )
42- {
43- s . Delete ( "from Parent" ) ;
44- tx . Commit ( ) ;
45- }
42+ s . Delete ( "from Parent" ) ;
43+ tx . Commit ( ) ;
4644 }
4745 }
4846
4947 [ Test ]
5048 public void VerifyAlwaysFilter ( )
5149 {
52- using ( ISession s = OpenSession ( ) )
50+ using ( var s = OpenSession ( ) )
51+ using ( var tx = s . BeginTransaction ( ) )
5352 {
54- using ( ITransaction tx = s . BeginTransaction ( ) )
55- {
56- Parent p = createParent ( ) ;
57- p . Child . Always = false ;
58- s . Save ( p ) ;
59- tx . Commit ( ) ;
60- }
53+ var p = CreateParent ( ) ;
54+ p . Child . Always = false ;
55+ s . Save ( p ) ;
56+ tx . Commit ( ) ;
6157 }
6258
63- using ( ISession s = OpenSession ( ) )
59+ using ( var s = OpenSession ( ) )
6460 {
65- enableFilters ( s ) ;
66- IList < Parent > resCriteria = joinGraphUsingCriteria ( s ) ;
67- IList < Parent > resHql = joinGraphUsingHql ( s ) ;
61+ EnableFilters ( s ) ;
62+ var resCriteria = JoinGraphUsingCriteria ( s ) ;
63+ var resHql = JoinGraphUsingHql ( s ) ;
6864
69- Assert . AreEqual ( 0 , resCriteria . Count ) ;
70- Assert . AreEqual ( 0 , resHql . Count ) ;
65+ Assert . That ( resCriteria . Count , Is . EqualTo ( 0 ) ) ;
66+ Assert . That ( resHql . Count , Is . EqualTo ( 0 ) ) ;
7167 }
7268 }
7369
7470 [ Test ]
7571 public void VerifyFilterActiveButNotUsedInManyToOne ( )
7672 {
77- using ( ISession s = OpenSession ( ) )
73+ using ( var s = OpenSession ( ) )
74+ using ( var tx = s . BeginTransaction ( ) )
7875 {
79- using ( ITransaction tx = s . BeginTransaction ( ) )
80- {
81- s . Save ( createParent ( ) ) ;
82- tx . Commit ( ) ;
83- }
76+ s . Save ( CreateParent ( ) ) ;
77+ tx . Commit ( ) ;
8478 }
8579
86- using ( ISession s = OpenSession ( ) )
80+ using ( var s = OpenSession ( ) )
8781 {
88- enableFilters ( s ) ;
89- IList < Parent > resCriteria = joinGraphUsingCriteria ( s ) ;
90- IList < Parent > resHql = joinGraphUsingHql ( s ) ;
82+ EnableFilters ( s ) ;
83+ var resCriteria = JoinGraphUsingCriteria ( s ) ;
84+ var resHql = JoinGraphUsingHql ( s ) ;
9185
92- Assert . AreEqual ( 1 , resCriteria . Count ) ;
93- Assert . IsNotNull ( resCriteria [ 0 ] . Child ) ;
86+ Assert . That ( resCriteria . Count , Is . EqualTo ( 1 ) ) ;
87+ Assert . That ( resCriteria [ 0 ] . Child , Is . Not . Null ) ;
9488
95- Assert . AreEqual ( 1 , resHql . Count ) ;
96- Assert . IsNotNull ( resHql [ 0 ] . Child ) ;
89+ Assert . That ( resHql . Count , Is . EqualTo ( 1 ) ) ;
90+ Assert . That ( resHql [ 0 ] . Child , Is . Not . Null ) ;
9791 }
9892 }
9993
10094 [ Test ]
10195 public void VerifyQueryWithWhereClause ( )
10296 {
103- using ( ISession s = OpenSession ( ) )
97+ using ( var s = OpenSession ( ) )
98+ using ( var tx = s . BeginTransaction ( ) )
10499 {
105- using ( ITransaction tx = s . BeginTransaction ( ) )
106- {
107- var p = createParent ( ) ;
108- p . ParentString = "a" ;
109- p . Child . ChildString = "b" ;
110- s . Save ( p ) ;
111- tx . Commit ( ) ;
112- }
100+ var p = CreateParent ( ) ;
101+ p . ParentString = "a" ;
102+ p . Child . ChildString = "b" ;
103+ s . Save ( p ) ;
104+ tx . Commit ( ) ;
113105 }
114106 IList < Parent > resCriteria ;
115107 IList < Parent > resHql ;
116- using ( ISession s = OpenSession ( ) )
108+ using ( var s = OpenSession ( ) )
117109 {
118- enableFilters ( s ) ;
110+ EnableFilters ( s ) ;
119111 resCriteria = s . CreateCriteria ( typeof ( Parent ) , "p" )
120- . CreateCriteria ( "Child" , "c" )
121- . SetFetchMode ( "Child" , FetchMode . Join )
122- . Add ( Restrictions . Eq ( "p.ParentString" , "a" ) )
123- . Add ( Restrictions . Eq ( "c.ChildString" , "b" ) )
124- . List < Parent > ( ) ;
125- resHql = s . CreateQuery ( @"select p from Parent p
126- join fetch p.Child c
127- where p.ParentString='a' and c.ChildString='b'" ) . List < Parent > ( ) ;
112+ . CreateCriteria ( "Child" , "c" )
113+ . SetFetchMode ( "Child" , FetchMode . Join )
114+ . Add ( Restrictions . Eq ( "p.ParentString" , "a" ) )
115+ . Add ( Restrictions . Eq ( "c.ChildString" , "b" ) )
116+ . List < Parent > ( ) ;
117+
118+ resHql = s . CreateQuery (
119+ @"select p from Parent p
120+ join fetch p.Child c
121+ where p.ParentString='a' and c.ChildString='b'" )
122+ . List < Parent > ( ) ;
128123 }
129- Assert . AreEqual ( 1 , resCriteria . Count ) ;
130- Assert . IsNotNull ( resCriteria [ 0 ] . Child ) ;
131- Assert . AreEqual ( 1 , resHql . Count ) ;
132- Assert . IsNotNull ( resHql [ 0 ] . Child ) ;
124+ Assert . That ( resCriteria . Count , Is . EqualTo ( 1 ) ) ;
125+ Assert . That ( resCriteria [ 0 ] . Child , Is . Not . Null ) ;
126+
127+ Assert . That ( resHql . Count , Is . EqualTo ( 1 ) ) ;
128+ Assert . That ( resHql [ 0 ] . Child , Is . Not . Null ) ;
133129 }
134130
135131 [ Test ]
136132 public void VerifyAlwaysFiltersOnPropertyRef ( )
137133 {
138- using ( ISession s = OpenSession ( ) )
134+ using ( var s = OpenSession ( ) )
135+ using ( var tx = s . BeginTransaction ( ) )
139136 {
140- using ( ITransaction tx = s . BeginTransaction ( ) )
141- {
142- Parent p = createParent ( ) ;
143- s . Save ( p ) ;
144- tx . Commit ( ) ;
145- }
137+ var p = CreateParent ( ) ;
138+ s . Save ( p ) ;
139+ tx . Commit ( ) ;
146140 }
147141
148- using ( ISession s = OpenSession ( ) )
142+ using ( var s = OpenSession ( ) )
149143 {
150- enableFilters ( s ) ;
151- IList < Parent > resCriteria = joinGraphUsingCriteria ( s ) ;
152- IList < Parent > resHql = joinGraphUsingHql ( s ) ;
153-
154- Assert . IsNotNull ( resCriteria [ 0 ] . Address ) ;
155- Assert . IsNotNull ( resHql [ 0 ] . Address ) ;
144+ EnableFilters ( s ) ;
145+ var resCriteria = JoinGraphUsingCriteria ( s ) ;
146+ var resHql = JoinGraphUsingHql ( s ) ;
147+
148+ Assert . That ( resCriteria . Count , Is . EqualTo ( 1 ) ) ;
149+ Assert . That ( resCriteria [ 0 ] . Address , Is . Not . Null ) ;
150+ Assert . That ( resHql . Count , Is . EqualTo ( 1 ) ) ;
151+ Assert . That ( resHql [ 0 ] . Address , Is . Not . Null ) ;
156152 }
157153 }
158154
159155 [ Test ]
160156 public void ExplicitFiltersOnCollectionsShouldBeActive ( )
161157 {
162- using ( ISession s = OpenSession ( ) )
158+ using ( var s = OpenSession ( ) )
159+ using ( var tx = s . BeginTransaction ( ) )
163160 {
164- using ( ITransaction tx = s . BeginTransaction ( ) )
161+ var p = CreateParent ( ) ;
162+ p . Children = new List < Child >
165163 {
166- Parent p = createParent ( ) ;
167- p . Children = new List < Child >
168- {
169- new Child { IsActive = true } ,
170- new Child { IsActive = false } ,
171- new Child { IsActive = true }
172- } ;
173- s . Save ( p ) ;
174- tx . Commit ( ) ;
175- }
164+ new Child { IsActive = true } ,
165+ new Child { IsActive = false } ,
166+ new Child { IsActive = true }
167+ } ;
168+ s . Save ( p ) ;
169+ tx . Commit ( ) ;
176170 }
177171
178- using ( ISession s = OpenSession ( ) )
172+ using ( var s = OpenSession ( ) )
179173 {
180- IFilter f = s . EnableFilter ( "active" ) ;
174+ var f = s . EnableFilter ( "active" ) ;
181175 f . SetParameter ( "active" , true ) ;
182- IList < Parent > resCriteria = joinGraphUsingCriteria ( s ) ;
183- IList < Parent > resHql = joinGraphUsingHql ( s ) ;
176+ var resCriteria = JoinGraphUsingCriteria ( s ) ;
177+ var resHql = JoinGraphUsingHql ( s ) ;
184178
185- Assert . AreEqual ( 2 , resCriteria [ 0 ] . Children . Count ) ;
186- Assert . AreEqual ( 2 , resHql [ 0 ] . Children . Count ) ;
179+ Assert . That ( resCriteria . Count , Is . EqualTo ( 1 ) ) ;
180+ Assert . That ( resCriteria [ 0 ] . Children . Count , Is . EqualTo ( 2 ) ) ;
181+ Assert . That ( resHql . Count , Is . EqualTo ( 1 ) ) ;
182+ Assert . That ( resHql [ 0 ] . Children . Count , Is . EqualTo ( 2 ) ) ;
187183 }
188184 }
189185
190186 [ Test ]
191187 public void ExplicitFiltersOnCollectionsShouldBeActiveWithEagerLoad ( )
192188 {
193- using ( ISession s = OpenSession ( ) )
189+ using ( var s = OpenSession ( ) )
190+ using ( var tx = s . BeginTransaction ( ) )
194191 {
195- using ( ITransaction tx = s . BeginTransaction ( ) )
192+ var p = CreateParent ( ) ;
193+ p . Children = new List < Child >
196194 {
197- Parent p = createParent ( ) ;
198- p . Children = new List < Child >
199- {
200- new Child { IsActive = true } ,
201- new Child { IsActive = false } ,
202- new Child { IsActive = true }
203- } ;
204- s . Save ( p ) ;
205- tx . Commit ( ) ;
206- }
195+ new Child { IsActive = true } ,
196+ new Child { IsActive = false } ,
197+ new Child { IsActive = true }
198+ } ;
199+ s . Save ( p ) ;
200+ tx . Commit ( ) ;
207201 }
208202
209- using ( ISession s = OpenSession ( ) )
203+ using ( var s = OpenSession ( ) )
210204 {
211- IFilter f = s . EnableFilter ( "active" ) ;
205+ var f = s . EnableFilter ( "active" ) ;
212206 f . SetParameter ( "active" , true ) ;
213- IList < Parent > resCriteria = s . CreateCriteria ( typeof ( Parent ) ) . SetFetchMode ( "Children" , FetchMode . Join ) . List < Parent > ( ) ;
214- IList < Parent > resHql = s . CreateQuery ( "select p from Parent p join fetch p.Children" ) . List < Parent > ( ) ;
207+ var resCriteria = s . CreateCriteria ( typeof ( Parent ) ) . SetFetchMode ( "Children" , FetchMode . Join ) . List < Parent > ( ) ;
208+ var resHql = s . CreateQuery ( "select p from Parent p join fetch p.Children" ) . List < Parent > ( ) ;
209+
210+ Assert . That ( resCriteria [ 0 ] . Children . Count , Is . EqualTo ( 2 ) ) ;
211+ Assert . That ( resHql [ 0 ] . Children . Count , Is . EqualTo ( 2 ) ) ;
212+ }
213+ }
215214
216- Assert . AreEqual ( 2 , resCriteria [ 0 ] . Children . Count ) ;
217- Assert . AreEqual ( 2 , resHql [ 0 ] . Children . Count ) ;
215+ [ Test ]
216+ public void Verify20BehaviourForPropertyRefAndFilter ( )
217+ {
218+ using ( var s = OpenSession ( ) )
219+ using ( var tx = s . BeginTransaction ( ) )
220+ {
221+ s . Save ( CreateParent ( ) ) ;
222+ tx . Commit ( ) ;
223+ }
224+ using ( var s = OpenSession ( ) )
225+ using ( s . BeginTransaction ( ) )
226+ {
227+ s . EnableFilter ( "active" )
228+ . SetParameter ( "active" , true ) ;
229+
230+ var resCriteria = s . CreateCriteria ( typeof ( Parent ) )
231+ . SetFetchMode ( "Address" , FetchMode . Join )
232+ . List < Parent > ( ) ;
233+
234+ var resHql = s . CreateQuery ( "select p from Parent p join p.Address" )
235+ . List < Parent > ( ) ;
236+
237+ Assert . That ( resCriteria . Count , Is . EqualTo ( 1 ) ) ;
238+ Assert . That ( resCriteria [ 0 ] . Address , Is . Not . Null ) ;
239+
240+ Assert . That ( resHql . Count , Is . EqualTo ( 1 ) ) ;
241+ Assert . That ( resHql [ 0 ] . Address , Is . Not . Null ) ;
218242 }
219243 }
244+
220245 }
221246}
0 commit comments