1
+ using System . Collections ;
1
2
using NHibernate . Cfg . MappingSchema ;
2
3
using NHibernate . Mapping . ByCode ;
3
4
using NUnit . Framework ;
4
- using System ;
5
5
6
- namespace NHibernate . Test . Cascade . OneToOneCascadeDelete . MappingByCode . Fk . Composite
6
+ namespace NHibernate . Test . Cascade . OneToOneCascadeDelete . Fk . Composite
7
7
{
8
- public class DeleteOneToOneOrphansTest : TestCaseMappingByCode
8
+ public abstract class DeleteOneToOneOrphansTest : TestCase
9
9
{
10
- protected override HbmMapping GetMappings ( )
11
- {
12
- var mapper = new ModelMapper ( ) ;
13
-
14
- mapper . Class < Employee > ( mc =>
15
- {
16
- mc . Id ( x => x . Id , map =>
17
- {
18
- map . Generator ( Generators . Identity ) ;
19
- map . Column ( "Id" ) ;
20
- } ) ;
21
- mc . ManyToOne < EmployeeInfo > ( x => x . Info , map =>
22
- {
23
- // Columns have to be declared first otherwise other properties are reset.
24
- map . Columns ( x => { x . Name ( "COMP_ID" ) ; } ,
25
- x => { x . Name ( "PERS_ID" ) ; } ) ;
26
- map . Unique ( true ) ;
27
- map . Cascade ( Mapping . ByCode . Cascade . All | Mapping . ByCode . Cascade . DeleteOrphans ) ;
28
- map . NotFound ( NotFoundMode . Exception ) ;
29
- } ) ;
30
- } ) ;
31
-
32
- mapper . Class < EmployeeInfo > ( mc =>
33
- {
34
- mc . ComponentAsId < EmployeeInfo . Identifier > ( x => x . Id , map =>
35
- {
36
- map . Property ( x => x . CompanyId , m => m . Column ( "COMPS_ID" ) ) ;
37
- map . Property ( x => x . PersonId , m => m . Column ( "PERS_ID" ) ) ;
38
- } ) ;
39
- } ) ;
40
-
41
- return mapper . CompileMappingForAllExplicitlyAddedEntities ( ) ;
42
- }
43
-
44
10
protected override void OnSetUp ( )
45
11
{
46
12
base . OnSetUp ( ) ;
47
13
using ( var s = OpenSession ( ) )
48
14
using ( var t = s . BeginTransaction ( ) )
49
15
{
50
- var emp = new Employee ( ) ;
16
+ var emp = new Employee { Name = "Julius Caesar" } ;
51
17
emp . Info = new EmployeeInfo ( 1L , 1L ) ;
52
18
53
19
s . Save ( emp . Info ) ;
@@ -68,6 +34,11 @@ protected override void OnTearDown()
68
34
tx . Commit ( ) ;
69
35
}
70
36
}
37
+
38
+ protected override string MappingsAssembly
39
+ {
40
+ get { return "NHibernate.Test" ; }
41
+ }
71
42
72
43
[ Test ]
73
44
public void TestOrphanedWhileManaged ( )
@@ -107,4 +78,58 @@ public void TestOrphanedWhileManaged()
107
78
}
108
79
}
109
80
}
81
+
82
+ [ TestFixture ]
83
+ public class DeleteOneToOneOrphansTestHbm : DeleteOneToOneOrphansTest
84
+ {
85
+ protected override IList Mappings
86
+ {
87
+ get { return new [ ] { "Cascade.OneToOneCascadeDelete.Fk.Composite.Mappings.hbm.xml" } ; }
88
+ }
89
+ }
90
+
91
+ [ TestFixture ]
92
+ public class DeleteOneToOneOrphansTestByCode : DeleteOneToOneOrphansTest
93
+ {
94
+ protected override IList Mappings
95
+ {
96
+ get { return new string [ 0 ] ; }
97
+ }
98
+
99
+
100
+ protected override void AddMappings ( Cfg . Configuration configuration )
101
+ {
102
+ var mapper = new ModelMapper ( ) ;
103
+
104
+ mapper . Class < Employee > ( mc =>
105
+ {
106
+ mc . Id ( x => x . Id , map =>
107
+ {
108
+ map . Generator ( Generators . Increment ) ;
109
+ map . Column ( "Id" ) ;
110
+ } ) ;
111
+ mc . ManyToOne < EmployeeInfo > ( x => x . Info , map =>
112
+ {
113
+ // Columns have to be declared first otherwise other properties are reset.
114
+ map . Columns ( x => { x . Name ( "COMP_ID" ) ; } ,
115
+ x => { x . Name ( "PERS_ID" ) ; } ) ;
116
+ map . Unique ( true ) ;
117
+ map . Cascade ( Mapping . ByCode . Cascade . All | Mapping . ByCode . Cascade . DeleteOrphans ) ;
118
+ map . NotFound ( NotFoundMode . Exception ) ;
119
+ } ) ;
120
+ mc . Property ( x => x . Name ) ;
121
+ } ) ;
122
+
123
+ mapper . Class < EmployeeInfo > ( mc =>
124
+ {
125
+ mc . ComponentAsId < EmployeeInfo . Identifier > ( x => x . Id , map =>
126
+ {
127
+ map . Property ( x => x . CompanyId , m => m . Column ( "COMPS_ID" ) ) ;
128
+ map . Property ( x => x . PersonId , m => m . Column ( "PERS_ID" ) ) ;
129
+ } ) ;
130
+ } ) ;
131
+
132
+ configuration . AddMapping ( mapper . CompileMappingForAllExplicitlyAddedEntities ( ) ) ;
133
+ }
134
+ }
110
135
}
0 commit comments