1
+ using System ;
2
+ using System . Collections ;
3
+ using System . Collections . Generic ;
4
+ using System . Text ;
5
+ using NHibernate . Dialect ;
6
+ using NUnit . Framework ;
7
+
8
+ namespace NHibernate . Test . NHSpecificTest . NH2053
9
+ {
10
+ [ TestFixture ]
11
+ public class Fixture : BugTestCase
12
+ {
13
+ protected override bool AppliesTo ( NHibernate . Dialect . Dialect dialect )
14
+ {
15
+ return dialect is MsSql2005Dialect ;
16
+ }
17
+ protected override void OnSetUp ( )
18
+ {
19
+ using ( var session = this . OpenSession ( ) )
20
+ {
21
+ using ( var tran = session . BeginTransaction ( ) )
22
+ {
23
+ Dog snoopy = new Dog ( )
24
+ {
25
+ Name = "Snoopy" ,
26
+ Talkable = false
27
+ } ;
28
+ snoopy . Name = "Snoopy" ;
29
+ Dog Jake = new Dog ( )
30
+ {
31
+ Name = "Jake the dog" ,
32
+ Talkable = true
33
+ } ;
34
+ session . Save ( snoopy ) ;
35
+ session . Save ( Jake ) ;
36
+ Cat kitty = new Cat ( )
37
+ {
38
+ Name = "Kitty"
39
+ } ;
40
+ session . Save ( kitty ) ;
41
+ tran . Commit ( ) ;
42
+ }
43
+ }
44
+ }
45
+ protected override void OnTearDown ( )
46
+ {
47
+ using ( var session = this . OpenSession ( ) )
48
+ {
49
+ using ( var tran = session . BeginTransaction ( ) )
50
+ {
51
+ session . Delete ( "from Dog" ) ;
52
+ session . Delete ( "from Animal" ) ;
53
+ tran . Commit ( ) ;
54
+ }
55
+ }
56
+ }
57
+
58
+ [ Test ]
59
+ public void JoinedSubClass_Filter ( )
60
+ {
61
+ using ( var session = this . OpenSession ( ) )
62
+ {
63
+ using ( var tran = session . BeginTransaction ( ) )
64
+ {
65
+ /*
66
+ * This is not a good case for this feature.
67
+ * In my case.
68
+ *
69
+ */
70
+ session . EnableFilter ( "talkableFilter" ) . SetParameter ( "talkable" , true ) ;
71
+ var snoopy = session . QueryOver < Dog > ( ) . Where ( x => x . Name == "Snoopy" ) . SingleOrDefault ( ) ;
72
+ Assert . AreEqual ( null , snoopy ) ; // there are no talking dog named Snoopy.
73
+
74
+ var jake = session . QueryOver < Dog > ( ) . Where ( x => x . Name == "Jake the dog" ) . SingleOrDefault ( ) ;
75
+ Assert . AreNotEqual ( null , jake ) ;
76
+ Assert . AreEqual ( "Jake the dog" , jake . Name ) ;
77
+
78
+ var kitty = session . QueryOver < Cat > ( ) . Where ( x => x . Name == "Kitty" ) . SingleOrDefault ( ) ;
79
+ Assert . AreNotEqual ( null , kitty ) ;
80
+ Assert . AreEqual ( "Kitty" , kitty . Name ) ;
81
+ }
82
+ }
83
+ }
84
+
85
+ }
86
+ }
0 commit comments