Skip to content

Commit 260e076

Browse files
committed
Add test for NH-2692.
1 parent c8e43b6 commit 260e076

File tree

4 files changed

+125
-0
lines changed

4 files changed

+125
-0
lines changed
Lines changed: 79 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,79 @@
1+
using System.Linq;
2+
using NHibernate.Linq;
3+
using NUnit.Framework;
4+
5+
namespace NHibernate.Test.NHSpecificTest.NH2692
6+
{
7+
[TestFixture, Ignore("Not fixed yet.")]
8+
public class Fixture : BugTestCase
9+
{
10+
[Test]
11+
public void QueryingParentWhichHasChildren()
12+
{
13+
using (var session = OpenSession())
14+
using (session.BeginTransaction())
15+
{
16+
var result = session.Query<Parent>()
17+
.Where(x => x.ChildComponents.Any())
18+
.ToList();
19+
20+
Assert.That(result, Has.Count.EqualTo(1));
21+
}
22+
}
23+
24+
[Test]
25+
public void QueryingChildrenComponents()
26+
{
27+
using (var session = OpenSession())
28+
using (session.BeginTransaction())
29+
{
30+
var result = session.Query<Parent>()
31+
.SelectMany(x => x.ChildComponents)
32+
.ToList();
33+
34+
Assert.That(result, Has.Count.EqualTo(1));
35+
}
36+
}
37+
38+
[Test]
39+
public void QueryingChildrenComponentsHql()
40+
{
41+
using (var session = OpenSession())
42+
using (session.BeginTransaction())
43+
{
44+
var result = session.CreateQuery("select c from Parent as p join p.ChildComponents as c")
45+
.List<ChildComponent>();
46+
47+
Assert.That(result, Has.Count.EqualTo(1));
48+
}
49+
}
50+
51+
protected override void OnSetUp()
52+
{
53+
using (var session = OpenSession())
54+
using (var tx = session.BeginTransaction())
55+
{
56+
var parent1 = new Parent();
57+
var child1 = new ChildComponent { Parent = parent1, SomeBool = true, SomeString = "something" };
58+
parent1.ChildComponents.Add(child1);
59+
60+
var parent2 = new Parent();
61+
62+
session.Save(parent1);
63+
session.Save(parent2);
64+
65+
tx.Commit();
66+
}
67+
}
68+
69+
protected override void OnTearDown()
70+
{
71+
using (var session = OpenSession())
72+
using (var tx = session.BeginTransaction())
73+
{
74+
session.Delete("from Parent");
75+
tx.Commit();
76+
}
77+
}
78+
}
79+
}
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
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.NH2692">
5+
<class name="Parent">
6+
<id name="Id" column="id_column_of_parent">
7+
<generator class="guid" />
8+
</id>
9+
<set name="ChildComponents">
10+
<key column="key_column_of_child" />
11+
<composite-element class="ChildComponent">
12+
<parent name="Parent" />
13+
<property name="SomeBool" />
14+
<property name="SomeString" />
15+
</composite-element>
16+
</set>
17+
</class>
18+
</hibernate-mapping>
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
using System;
2+
using System.Collections.Generic;
3+
4+
namespace NHibernate.Test.NHSpecificTest.NH2692
5+
{
6+
public class Parent
7+
{
8+
public Parent()
9+
{
10+
ChildComponents = new List<ChildComponent>();
11+
}
12+
13+
public virtual ICollection<ChildComponent> ChildComponents { get; set; }
14+
public virtual Guid Id { get; set; }
15+
}
16+
17+
public class ChildComponent
18+
{
19+
public virtual Parent Parent { get; set; }
20+
public virtual bool SomeBool { get; set; }
21+
public virtual string SomeString { get; set; }
22+
}
23+
}

src/NHibernate.Test/NHibernate.Test.csproj

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -674,6 +674,8 @@
674674
<Compile Include="NHSpecificTest\BagWithLazyExtraAndFilter\Domain.cs" />
675675
<Compile Include="NHSpecificTest\BagWithLazyExtraAndFilter\Fixture.cs" />
676676
<Compile Include="Component\Basic\ComponentWithUniqueConstraintTests.cs" />
677+
<Compile Include="NHSpecificTest\NH2692\Fixture.cs" />
678+
<Compile Include="NHSpecificTest\NH2692\Model.cs" />
677679
<Compile Include="NHSpecificTest\NH2772\Model.cs" />
678680
<Compile Include="NHSpecificTest\NH2772\Fixture.cs" />
679681
<Compile Include="NHSpecificTest\NH3058\DomainClass.cs" />
@@ -2945,6 +2947,9 @@
29452947
<EmbeddedResource Include="NHSpecificTest\NH1291AnonExample\Mappings.hbm.xml" />
29462948
</ItemGroup>
29472949
<ItemGroup>
2950+
<EmbeddedResource Include="NHSpecificTest\NH2692\Mappings.hbm.xml">
2951+
<SubType>Designer</SubType>
2952+
</EmbeddedResource>
29482953
<EmbeddedResource Include="NHSpecificTest\NH3058\Mappings.hbm.xml" />
29492954
<EmbeddedResource Include="NHSpecificTest\NH2985\Mappings.hbm.xml" />
29502955
<EmbeddedResource Include="NHSpecificTest\NH1818\Mappings.hbm.xml" />

0 commit comments

Comments
 (0)