Skip to content

Commit edcf928

Browse files
committed
NH-1262 - Test refactored to use common code base and to be more stable on some dialects
1 parent 6c14309 commit edcf928

File tree

31 files changed

+403
-1059
lines changed

31 files changed

+403
-1059
lines changed
Lines changed: 64 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -1,47 +1,15 @@
1-
using NHibernate.Cfg.MappingSchema;
1+
using System.Collections;
2+
using NHibernate.Cfg;
23
using NHibernate.Mapping.ByCode;
34
using NUnit.Framework;
45

5-
namespace NHibernate.Test.Cascade.OneToOneCascadeDelete.MappingByCode.Fk.Bidirectional
6+
namespace NHibernate.Test.Cascade.OneToOneCascadeDelete.Fk.Bidirectional
67
{
7-
[TestFixture]
8-
public class DeleteOneToOneOrphansTest : TestCaseMappingByCode
8+
public abstract class DeleteOneToOneOrphansTest : TestCase
99
{
10-
protected override HbmMapping GetMappings()
10+
protected override string MappingsAssembly
1111
{
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.OneToOne<EmployeeInfo>(x => x.Info, map =>
22-
{
23-
map.PropertyReference(x => x.EmployeeDetails);
24-
map.Cascade(Mapping.ByCode.Cascade.All | Mapping.ByCode.Cascade.DeleteOrphans);
25-
map.Constrained(false);
26-
});
27-
});
28-
29-
mapper.Class<EmployeeInfo>(mc =>
30-
{
31-
mc.Id(x => x.Id, map =>
32-
{
33-
map.Generator(Generators.Identity);
34-
map.Column("Id");
35-
});
36-
mc.ManyToOne<Employee>(x => x.EmployeeDetails, map =>
37-
{
38-
map.Column("employee_id");
39-
map.Unique(true);
40-
map.NotNullable(true);
41-
});
42-
});
43-
44-
return mapper.CompileMappingForAllExplicitlyAddedEntities();
12+
get { return "NHibernate.Test"; }
4513
}
4614

4715
protected override void OnSetUp()
@@ -50,7 +18,7 @@ protected override void OnSetUp()
5018
using (var s = OpenSession())
5119
using (var t = s.BeginTransaction())
5220
{
53-
var emp = new Employee();
21+
var emp = new Employee { Name = "Julius Caesar" };
5422
emp.Info = new EmployeeInfo(emp);
5523

5624
s.Save(emp);
@@ -74,7 +42,7 @@ protected override void OnTearDown()
7442
[Test]
7543
public void TestOrphanedWhileManaged()
7644
{
77-
long empId = 0;
45+
long empId;
7846

7947
using (var s = OpenSession())
8048
using (var t = s.BeginTransaction())
@@ -109,4 +77,60 @@ public void TestOrphanedWhileManaged()
10977
}
11078
}
11179
}
80+
81+
[TestFixture]
82+
public class DeleteOneToOneOrphansTestHbm : DeleteOneToOneOrphansTest
83+
{
84+
protected override IList Mappings
85+
{
86+
get { return new[] { "Cascade.OneToOneCascadeDelete.Fk.Bidirectional.Mappings.hbm.xml" }; }
87+
}
88+
}
89+
90+
[TestFixture]
91+
public class DeleteOneToOneOrphansTestByCode : DeleteOneToOneOrphansTest
92+
{
93+
protected override IList Mappings
94+
{
95+
get { return new string[0]; }
96+
}
97+
98+
protected override void AddMappings(Configuration configuration)
99+
{
100+
var mapper = new ModelMapper();
101+
102+
mapper.Class<Employee>(mc =>
103+
{
104+
mc.Id(x => x.Id, map =>
105+
{
106+
map.Generator(Generators.Increment);
107+
map.Column("Id");
108+
});
109+
mc.OneToOne<EmployeeInfo>(x => x.Info, map =>
110+
{
111+
map.PropertyReference(x => x.EmployeeDetails);
112+
map.Cascade(Mapping.ByCode.Cascade.All | Mapping.ByCode.Cascade.DeleteOrphans);
113+
map.Constrained(false);
114+
});
115+
mc.Property(x => x.Name);
116+
});
117+
118+
mapper.Class<EmployeeInfo>(mc =>
119+
{
120+
mc.Id(x => x.Id, map =>
121+
{
122+
map.Generator(Generators.Increment);
123+
map.Column("Id");
124+
});
125+
mc.ManyToOne<Employee>(x => x.EmployeeDetails, map =>
126+
{
127+
map.Column("employee_id");
128+
map.Unique(true);
129+
map.NotNullable(true);
130+
});
131+
});
132+
133+
configuration.AddMapping(mapper.CompileMappingForAllExplicitlyAddedEntities());
134+
}
135+
}
112136
}

src/NHibernate.Test/Cascade/OneToOneCascadeDelete/Hbm/Fk/Bidirectional/Mappings.hbm.xml renamed to src/NHibernate.Test/Cascade/OneToOneCascadeDelete/Fk/Bidirectional/Mappings.hbm.xml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<?xml version="1.0" encoding="utf-8" ?>
22
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
33
assembly="NHibernate.Test"
4-
namespace="NHibernate.Test.Cascade.OneToOneCascadeDelete.Hbm.Fk.Bidirectional" >
4+
namespace="NHibernate.Test.Cascade.OneToOneCascadeDelete.Fk.Bidirectional" >
55

66
<class name="Employee">
77
<id name="Id" type="long" column="Id" >
@@ -12,6 +12,7 @@
1212
class="EmployeeInfo"
1313
constrained="false"
1414
cascade="all,delete-orphan" />
15+
<property name="Name" />
1516
</class>
1617

1718
<class name="EmployeeInfo">

src/NHibernate.Test/Cascade/OneToOneCascadeDelete/Hbm/Fk/Bidirectional/Model.cs renamed to src/NHibernate.Test/Cascade/OneToOneCascadeDelete/Fk/Bidirectional/Model.cs

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,10 @@
1-
namespace NHibernate.Test.Cascade.OneToOneCascadeDelete.Hbm.Fk.Bidirectional
1+
namespace NHibernate.Test.Cascade.OneToOneCascadeDelete.Fk.Bidirectional
22
{
33
public class Employee
44
{
55
public virtual long Id { get; set; }
6+
public virtual string Name { get; set; }
67
public virtual EmployeeInfo Info { get; set; }
7-
8-
public Employee()
9-
{
10-
11-
}
128
}
139

1410
public class EmployeeInfo
@@ -18,7 +14,6 @@ public class EmployeeInfo
1814

1915
public EmployeeInfo()
2016
{
21-
2217
}
2318

2419
public EmployeeInfo(Employee emp)
Lines changed: 63 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -1,53 +1,19 @@
1+
using System.Collections;
12
using NHibernate.Cfg.MappingSchema;
23
using NHibernate.Mapping.ByCode;
34
using NUnit.Framework;
4-
using System;
55

6-
namespace NHibernate.Test.Cascade.OneToOneCascadeDelete.MappingByCode.Fk.Composite
6+
namespace NHibernate.Test.Cascade.OneToOneCascadeDelete.Fk.Composite
77
{
8-
public class DeleteOneToOneOrphansTest : TestCaseMappingByCode
8+
public abstract class DeleteOneToOneOrphansTest : TestCase
99
{
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-
4410
protected override void OnSetUp()
4511
{
4612
base.OnSetUp();
4713
using (var s = OpenSession())
4814
using (var t = s.BeginTransaction())
4915
{
50-
var emp = new Employee();
16+
var emp = new Employee { Name = "Julius Caesar" };
5117
emp.Info = new EmployeeInfo( 1L, 1L);
5218

5319
s.Save(emp.Info);
@@ -68,6 +34,11 @@ protected override void OnTearDown()
6834
tx.Commit();
6935
}
7036
}
37+
38+
protected override string MappingsAssembly
39+
{
40+
get { return "NHibernate.Test"; }
41+
}
7142

7243
[Test]
7344
public void TestOrphanedWhileManaged()
@@ -107,4 +78,58 @@ public void TestOrphanedWhileManaged()
10778
}
10879
}
10980
}
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+
}
110135
}

src/NHibernate.Test/Cascade/OneToOneCascadeDelete/Hbm/Fk/Composite/Mappings.hbm.xml renamed to src/NHibernate.Test/Cascade/OneToOneCascadeDelete/Fk/Composite/Mappings.hbm.xml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<?xml version="1.0" encoding="utf-8" ?>
22
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
33
assembly="NHibernate.Test"
4-
namespace="NHibernate.Test.Cascade.OneToOneCascadeDelete.Hbm.Fk.Composite">
4+
namespace="NHibernate.Test.Cascade.OneToOneCascadeDelete.Fk.Composite">
55

66
<class name="Employee">
77
<id name="Id" type="long" column="Id" >
@@ -14,6 +14,7 @@
1414
<column name="COMP_ID" />
1515
<column name="PERS_ID" />
1616
</many-to-one>
17+
<property name="Name" />
1718
</class>
1819

1920
<class name="EmployeeInfo">

src/NHibernate.Test/Cascade/OneToOneCascadeDelete/MappingByCode/Fk/Composite/Model.cs renamed to src/NHibernate.Test/Cascade/OneToOneCascadeDelete/Fk/Composite/Model.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
11
using System;
22

3-
namespace NHibernate.Test.Cascade.OneToOneCascadeDelete.MappingByCode.Fk.Composite
3+
namespace NHibernate.Test.Cascade.OneToOneCascadeDelete.Fk.Composite
44
{
55
public class Employee
66
{
77
public virtual long Id { get; set; }
8+
public virtual string Name { get; set; }
89
public virtual EmployeeInfo Info { get; set; }
910

1011
public Employee()

0 commit comments

Comments
 (0)