Skip to content

Commit 016d60e

Browse files
committed
Test case for NH2651 taken from Jira. This already works.
1 parent 170daff commit 016d60e

File tree

4 files changed

+85
-0
lines changed

4 files changed

+85
-0
lines changed
Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
using NHibernate.Cfg;
2+
using NHibernate.Criterion;
3+
using NUnit.Framework;
4+
5+
namespace NHibernate.Test.NHSpecificTest.NH2651
6+
{
7+
[TestFixture]
8+
public class Fixture : BugTestCase
9+
{
10+
protected override void OnSetUp()
11+
{
12+
base.OnSetUp();
13+
using (ISession session = this.OpenSession())
14+
using (ITransaction transaction = session.BeginTransaction())
15+
{
16+
var entity = new Model { Id = 1, SampleData = 1 };
17+
session.Save(entity);
18+
19+
var entity2 = new Model { Id = 2, SampleData = 2 };
20+
session.Save(entity2);
21+
22+
transaction.Commit();
23+
}
24+
}
25+
26+
protected override void OnTearDown()
27+
{
28+
base.OnTearDown();
29+
using (ISession session = this.OpenSession())
30+
using (ITransaction transaction = session.BeginTransaction())
31+
{
32+
session.Delete("from System.Object");
33+
transaction.Commit();
34+
}
35+
}
36+
37+
[Test]
38+
public void TestConditionalProjectionWithConstantAndLikeExpression()
39+
{
40+
using (ISession session = this.OpenSession())
41+
{
42+
var projection = (Projections.Conditional(Restrictions.Eq("SampleData", 1),
43+
Projections.Constant("Foo"),
44+
Projections.Constant("Bar")));
45+
46+
var likeExpression = new NHibernate.Criterion.LikeExpression(projection, "B", MatchMode.Start);
47+
var criteria1 = session.CreateCriteria<Model>()
48+
.Add(Restrictions.Eq("Id", 1))
49+
.Add(likeExpression);
50+
51+
var result1 = criteria1.UniqueResult<Model>();
52+
53+
var criteria2 = session.CreateCriteria<Model>()
54+
.Add(Restrictions.Eq("Id", 2))
55+
.Add(likeExpression);
56+
57+
var result2 = criteria2.UniqueResult<Model>();
58+
59+
Assert.IsNull(result1);
60+
Assert.IsNotNull(result2);
61+
}
62+
}
63+
}
64+
}
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
<?xml version="1.0" encoding="utf-8" ?>
2+
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" assembly="NHibernate.Test"
3+
namespace="NHibernate.Test.NHSpecificTest.NH2651">
4+
<class name="Model">
5+
<id name="Id">
6+
<generator class="assigned" />
7+
</id>
8+
<property name="SampleData" />
9+
</class>
10+
</hibernate-mapping>
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
namespace NHibernate.Test.NHSpecificTest.NH2651
2+
{
3+
public class Model
4+
{
5+
public virtual int Id { get; set; }
6+
public virtual int SampleData { get; set; }
7+
}
8+
}

src/NHibernate.Test/NHibernate.Test.csproj

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -662,6 +662,8 @@
662662
<Compile Include="NHSpecificTest\BagWithLazyExtraAndFilter\Domain.cs" />
663663
<Compile Include="NHSpecificTest\BagWithLazyExtraAndFilter\Fixture.cs" />
664664
<Compile Include="Component\Basic\ComponentWithUniqueConstraintTests.cs" />
665+
<Compile Include="NHSpecificTest\NH2651\Fixture.cs" />
666+
<Compile Include="NHSpecificTest\NH2651\Model.cs" />
665667
<Compile Include="NHSpecificTest\NH2789\Entities.cs" />
666668
<Compile Include="NHSpecificTest\NH2789\Fixture.cs" />
667669
<Compile Include="NHSpecificTest\NH2347\Entity.cs" />
@@ -2836,6 +2838,7 @@
28362838
<EmbeddedResource Include="NHSpecificTest\NH1291AnonExample\Mappings.hbm.xml" />
28372839
</ItemGroup>
28382840
<ItemGroup>
2841+
<EmbeddedResource Include="NHSpecificTest\NH2651\Mappings.hbm.xml" />
28392842
<EmbeddedResource Include="NHSpecificTest\NH3121\Mappings.hbm.xml" />
28402843
<EmbeddedResource Include="NHSpecificTest\NH2789\Mappings.hbm.xml" />
28412844
<EmbeddedResource Include="NHSpecificTest\NH3142\Mappings.hbm.xml" />

0 commit comments

Comments
 (0)