Skip to content

Commit f35379a

Browse files
Add test for #2608
1 parent 94f18d3 commit f35379a

File tree

5 files changed

+120
-0
lines changed

5 files changed

+120
-0
lines changed
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
//------------------------------------------------------------------------------
2+
// <auto-generated>
3+
// This code was generated by AsyncGenerator.
4+
//
5+
// Changes to this file may cause incorrect behavior and will be lost if
6+
// the code is regenerated.
7+
// </auto-generated>
8+
//------------------------------------------------------------------------------
9+
10+
11+
using NUnit.Framework;
12+
13+
namespace NHibernate.Test.NHSpecificTest.GH2608
14+
{
15+
using System.Threading.Tasks;
16+
[TestFixture]
17+
public class FixtureAsync : BugTestCase
18+
{
19+
protected override void OnTearDown()
20+
{
21+
using (var session = OpenSession())
22+
using (var transaction = session.BeginTransaction())
23+
{
24+
session.CreateQuery("delete from PersonalDetails").ExecuteUpdate();
25+
session.CreateQuery("delete from System.Object").ExecuteUpdate();
26+
27+
transaction.Commit();
28+
}
29+
}
30+
31+
[Test]
32+
public async Task MergeBidiPrimaryKeyOneToOneAsync()
33+
{
34+
using (var s = OpenSession())
35+
using (var tx = s.BeginTransaction())
36+
{
37+
var p = new Person { Name = "steve" };
38+
p.Details = new PersonalDetails { SomePersonalDetail = "I have big feet", Person = p };
39+
await (s.MergeAsync(p));
40+
await (tx.CommitAsync());
41+
}
42+
}
43+
}
44+
}
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
using NUnit.Framework;
2+
3+
namespace NHibernate.Test.NHSpecificTest.GH2608
4+
{
5+
[TestFixture]
6+
public class Fixture : BugTestCase
7+
{
8+
protected override void OnTearDown()
9+
{
10+
using (var session = OpenSession())
11+
using (var transaction = session.BeginTransaction())
12+
{
13+
session.CreateQuery("delete from PersonalDetails").ExecuteUpdate();
14+
session.CreateQuery("delete from System.Object").ExecuteUpdate();
15+
16+
transaction.Commit();
17+
}
18+
}
19+
20+
[Test]
21+
public void MergeBidiPrimaryKeyOneToOne()
22+
{
23+
using (var s = OpenSession())
24+
using (var tx = s.BeginTransaction())
25+
{
26+
var p = new Person { Name = "steve" };
27+
p.Details = new PersonalDetails { SomePersonalDetail = "I have big feet", Person = p };
28+
s.Merge(p);
29+
tx.Commit();
30+
}
31+
}
32+
}
33+
}
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
<?xml version="1.0" encoding="utf-8" ?>
2+
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
3+
assembly="NHibernate.Test"
4+
namespace="NHibernate.Test.NHSpecificTest.GH2608">
5+
6+
<class name="Person">
7+
<id name="Id">
8+
<generator class="native"/>
9+
</id>
10+
<property name="Name"/>
11+
<one-to-one name="Details" class="PersonalDetails" cascade="all"/>
12+
</class>
13+
14+
<class name="PersonalDetails">
15+
<id name="Id">
16+
<generator class="foreign">
17+
<param name="property">Person</param>
18+
</generator>
19+
</id>
20+
<property name="SomePersonalDetail"/>
21+
<one-to-one name="Person" class="Person" constrained="true"/>
22+
</class>
23+
24+
</hibernate-mapping>
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
namespace NHibernate.Test.NHSpecificTest.GH2608
2+
{
3+
public class Person
4+
{
5+
public virtual long Id { get; set; }
6+
public virtual string Name { get; set; }
7+
public virtual PersonalDetails Details { get; set; }
8+
}
9+
}
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
namespace NHibernate.Test.NHSpecificTest.GH2608
2+
{
3+
public class PersonalDetails
4+
{
5+
public virtual long Id { get; set; }
6+
public virtual string SomePersonalDetail { get; set; }
7+
8+
public virtual Person Person { get; set; }
9+
}
10+
}

0 commit comments

Comments
 (0)