Skip to content

Commit a79bd8d

Browse files
committed
added the cascade.merge convention. It is present in nhibernate engine so
changes are only in the interface
1 parent 090117e commit a79bd8d

File tree

7 files changed

+39
-0
lines changed

7 files changed

+39
-0
lines changed

src/FluentNHibernate.Testing/ConventionsTests/Inspection/CascadeTests.cs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,5 +47,12 @@ public void DirtyShouldHaveCorrectValue()
4747
{
4848
Cascade.SaveUpdate.ToString().ShouldEqual("save-update");
4949
}
50+
51+
[Test]
52+
public void MergeShouldHaveCorrectValue()
53+
{
54+
Cascade.All.ToString().ShouldEqual("merge");
55+
}
56+
5057
}
5158
}

src/FluentNHibernate.Testing/DomainModel/Mapping/CascadeExpressionTester.cs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,5 +58,11 @@ public void Delete_should_add_the_correct_cascade_attribute_to_the_parent_part()
5858
{
5959
A_call_to(_cascade.Delete).should_set_the_cascade_value_to("delete");
6060
}
61+
62+
[Test]
63+
public void Merge_should_add_the_correct_cascade_attribute_to_the_parent_part()
64+
{
65+
A_call_to(_cascade.Merge).should_set_the_cascade_value_to("merge");
66+
}
6167
}
6268
}

src/FluentNHibernate/Conventions/Helpers/DefaultCascade.cs

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,5 +31,13 @@ public static IHibernateMappingConvention Delete()
3131
criteria => { },
3232
instance => instance.DefaultCascade.Delete());
3333
}
34+
35+
36+
public static IHibernateMappingConvention Merge()
37+
{
38+
return new BuiltHibernateMappingConvention(
39+
criteria => { },
40+
instance => instance.DefaultCascade.Merge());
41+
}
3442
}
3543
}

src/FluentNHibernate/Conventions/Inspections/Cascade.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ public class Cascade
88
public static readonly Cascade None = new Cascade("none");
99
public static readonly Cascade SaveUpdate = new Cascade("save-update");
1010
public static readonly Cascade Delete = new Cascade("delete");
11+
public static readonly Cascade Merge = new Cascade("merge");
1112

1213
private readonly string value;
1314

src/FluentNHibernate/Conventions/Instances/CascadeInstance.cs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,5 +30,10 @@ public void Delete()
3030
{
3131
setter("delete");
3232
}
33+
34+
public void Merge()
35+
{
36+
setter("merge");
37+
}
3338
}
3439
}

src/FluentNHibernate/Conventions/Instances/ICascadeInstance.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,5 +8,6 @@ public interface ICascadeInstance
88
void None();
99
void SaveUpdate();
1010
void Delete();
11+
void Merge();
1112
}
1213
}

src/FluentNHibernate/Mapping/CascadeExpression.cs

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,5 +48,16 @@ public TParent Delete()
4848
setter("delete");
4949
return parent;
5050
}
51+
52+
/// <summary>
53+
/// Cascade deletes
54+
/// </summary>
55+
public TParent Merge()
56+
{
57+
setter("merge");
58+
return parent;
59+
}
60+
61+
5162
}
5263
}

0 commit comments

Comments
 (0)