Skip to content

Commit bd4389a

Browse files
committed
Failing test for NH3570. One test for unidirectional onetomany and one test for bidirectional onetomany - both fails.
1 parent 6fedcee commit bd4389a

File tree

5 files changed

+186
-0
lines changed

5 files changed

+186
-0
lines changed
Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
using System;
2+
using NUnit.Framework;
3+
using SharpTestsEx;
4+
5+
namespace NHibernate.Test.NHSpecificTest.NH3570
6+
{
7+
[TestFixture]
8+
public class BiFixture : BugTestCase
9+
{
10+
private Guid id;
11+
12+
[Test]
13+
public void ShouldNotSaveRemoveChild()
14+
{
15+
var parent = new BiParent();
16+
parent.AddChild(new BiChild());
17+
using (var s = OpenSession())
18+
{
19+
using (var tx = s.BeginTransaction())
20+
{
21+
id = (Guid)s.Save(parent);
22+
parent.Children.Clear();
23+
parent.AddChild(new BiChild());
24+
tx.Commit();
25+
}
26+
}
27+
using (var s = OpenSession())
28+
{
29+
using (s.BeginTransaction())
30+
{
31+
s.Get<BiParent>(id).Children.Count.Should().Be.EqualTo(1);
32+
s.CreateCriteria<BiChild>().List().Count.Should().Be.EqualTo(1);
33+
}
34+
}
35+
}
36+
37+
protected override void OnTearDown()
38+
{
39+
using (var s = OpenSession())
40+
{
41+
using (var tx = s.BeginTransaction())
42+
{
43+
s.CreateQuery("delete from BiChild").ExecuteUpdate();
44+
s.CreateQuery("delete from BiParent").ExecuteUpdate();
45+
tx.Commit();
46+
}
47+
}
48+
}
49+
}
50+
}
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
<?xml version="1.0" encoding="utf-8" ?>
2+
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" assembly="NHibernate.Test" namespace="NHibernate.Test.NHSpecificTest.NH3570">
3+
<class name="UniParent">
4+
<id name="Id">
5+
<generator class="guid.comb" />
6+
</id>
7+
<version name="Version"/>
8+
<bag name="Children" cascade="all-delete-orphan">
9+
<key column="parentId"/>
10+
<one-to-many class="UniChild"/>
11+
</bag>
12+
</class>
13+
<class name="UniChild">
14+
<id name="Id">
15+
<generator class="guid.comb" />
16+
</id>
17+
</class>
18+
19+
<class name="BiParent">
20+
<id name="Id">
21+
<generator class="guid.comb" />
22+
</id>
23+
<version name="Version"/>
24+
<bag name="Children" cascade="all-delete-orphan" inverse="true">
25+
<key column="parentId"/>
26+
<one-to-many class="BiChild"/>
27+
</bag>
28+
</class>
29+
<class name="BiChild">
30+
<id name="Id">
31+
<generator class="guid.comb" />
32+
</id>
33+
<many-to-one class="BiParent" name="Parent" column="parentId"/>
34+
</class>
35+
</hibernate-mapping>
36+
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
using System;
2+
using System.Collections.Generic;
3+
4+
namespace NHibernate.Test.NHSpecificTest.NH3570
5+
{
6+
public class UniParent
7+
{
8+
public UniParent()
9+
{
10+
Children = new List<UniChild>();
11+
}
12+
13+
public virtual Guid Id { get; set; }
14+
public virtual IList<UniChild> Children { get; set; }
15+
public virtual int Version { get; set; }
16+
}
17+
18+
public class UniChild
19+
{
20+
public virtual Guid Id { get; set; }
21+
}
22+
23+
public class BiParent
24+
{
25+
public BiParent()
26+
{
27+
Children = new List<BiChild>();
28+
}
29+
30+
public virtual Guid Id { get; set; }
31+
public virtual IList<BiChild> Children { get; set; }
32+
public virtual int Version { get; set; }
33+
34+
public virtual void AddChild(BiChild child)
35+
{
36+
child.Parent = this;
37+
Children.Add(child);
38+
}
39+
}
40+
41+
public class BiChild
42+
{
43+
public virtual Guid Id { get; set; }
44+
public virtual BiParent Parent { get; set; }
45+
}
46+
}
Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
using System;
2+
using NUnit.Framework;
3+
using SharpTestsEx;
4+
5+
namespace NHibernate.Test.NHSpecificTest.NH3570
6+
{
7+
[TestFixture]
8+
public class UniFixture : BugTestCase
9+
{
10+
private Guid id;
11+
12+
[Test]
13+
public void ShouldNotSaveRemoveChild()
14+
{
15+
var parent = new UniParent();
16+
parent.Children.Add(new UniChild());
17+
using (var s = OpenSession())
18+
{
19+
using (var tx = s.BeginTransaction())
20+
{
21+
id = (Guid) s.Save(parent);
22+
parent.Children.Clear();
23+
parent.Children.Add(new UniChild());
24+
tx.Commit();
25+
}
26+
}
27+
using (var s = OpenSession())
28+
{
29+
using (s.BeginTransaction())
30+
{
31+
s.Get<UniParent>(id).Children.Count.Should().Be.EqualTo(1);
32+
s.CreateCriteria<UniChild>().List().Count.Should().Be.EqualTo(1);
33+
}
34+
}
35+
}
36+
37+
protected override void OnTearDown()
38+
{
39+
using (var s = OpenSession())
40+
{
41+
using (var tx = s.BeginTransaction())
42+
{
43+
s.CreateQuery("delete from UniChild").ExecuteUpdate();
44+
s.CreateQuery("delete from UniParent").ExecuteUpdate();
45+
tx.Commit();
46+
}
47+
}
48+
}
49+
}
50+
}

src/NHibernate.Test/NHibernate.Test.csproj

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -737,6 +737,9 @@
737737
</Compile>
738738
<Compile Include="NHSpecificTest\NH3202\Domain.cs" />
739739
<Compile Include="NHSpecificTest\NH3202\Fixture.cs" />
740+
<Compile Include="NHSpecificTest\NH3570\BiFixture.cs" />
741+
<Compile Include="NHSpecificTest\NH3570\UniFixture.cs" />
742+
<Compile Include="NHSpecificTest\NH3570\Model.cs" />
740743
<Compile Include="NHSpecificTest\NH646\Domain.cs" />
741744
<Compile Include="NHSpecificTest\NH646\Fixture.cs" />
742745
<Compile Include="NHSpecificTest\Futures\LinqToFutureValueFixture.cs" />
@@ -2971,6 +2974,7 @@
29712974
<EmbeddedResource Include="NHSpecificTest\NH1291AnonExample\Mappings.hbm.xml" />
29722975
</ItemGroup>
29732976
<ItemGroup>
2977+
<EmbeddedResource Include="NHSpecificTest\NH3570\Mappings.hbm.xml" />
29742978
<EmbeddedResource Include="NHSpecificTest\NH2692\Mappings.hbm.xml">
29752979
<SubType>Designer</SubType>
29762980
</EmbeddedResource>

0 commit comments

Comments
 (0)