|
From: <fab...@us...> - 2009-05-13 19:31:22
|
Revision: 4292
http://nhibernate.svn.sourceforge.net/nhibernate/?rev=4292&view=rev
Author: fabiomaulo
Date: 2009-05-13 19:31:17 +0000 (Wed, 13 May 2009)
Log Message:
-----------
Test for NH-1760
Modified Paths:
--------------
trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj
Added Paths:
-----------
trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1760/
trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1760/DomainClass.cs
trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1760/Mappings.hbm.xml
trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1760/SampleTest.cs
Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1760/DomainClass.cs
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1760/DomainClass.cs (rev 0)
+++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1760/DomainClass.cs 2009-05-13 19:31:17 UTC (rev 4292)
@@ -0,0 +1,60 @@
+using System;
+
+namespace NHibernate.Test.NHSpecificTest.NH1760
+{
+ public class Customer
+ {
+ public Int32 Id { get; set; }
+ public String Name { get; set; }
+ }
+
+ public class TestClass
+ {
+ public TestClassId Id { get; set; }
+ public String Value { get; set; }
+ }
+
+ public class TestClassId
+ {
+ public Customer Customer { get; set; }
+ public Int32 SomeInt { get; set; }
+
+ public bool Equals(TestClassId other)
+ {
+ if (ReferenceEquals(null, other))
+ {
+ return false;
+ }
+ if (ReferenceEquals(this, other))
+ {
+ return true;
+ }
+ return Equals(other.Customer, Customer) && other.SomeInt == SomeInt;
+ }
+
+ public override bool Equals(object obj)
+ {
+ if (ReferenceEquals(null, obj))
+ {
+ return false;
+ }
+ if (ReferenceEquals(this, obj))
+ {
+ return true;
+ }
+ if (obj.GetType() != typeof (TestClassId))
+ {
+ return false;
+ }
+ return Equals((TestClassId) obj);
+ }
+
+ public override int GetHashCode()
+ {
+ unchecked
+ {
+ return ((Customer != null ? Customer.GetHashCode() : 0) * 397) ^ SomeInt;
+ }
+ }
+ }
+}
\ No newline at end of file
Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1760/Mappings.hbm.xml
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1760/Mappings.hbm.xml (rev 0)
+++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1760/Mappings.hbm.xml 2009-05-13 19:31:17 UTC (rev 4292)
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" assembly="NHibernate.Test"
+ namespace="NHibernate.Test.NHSpecificTest.NH1760"
+ default-lazy="false">
+
+ <class name="Customer">
+ <id name="Id">
+ <generator class="native" />
+ </id>
+ <property name="Name" />
+ </class>
+
+ <class name="TestClass" >
+ <composite-id name="Id" class="TestClassId">
+ <key-many-to-one class="Customer" name="Customer" />
+ <key-property name="SomeInt" />
+ </composite-id>
+ <property name="Value" />
+ </class>
+
+</hibernate-mapping>
\ No newline at end of file
Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1760/SampleTest.cs
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1760/SampleTest.cs (rev 0)
+++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1760/SampleTest.cs 2009-05-13 19:31:17 UTC (rev 4292)
@@ -0,0 +1,62 @@
+using System.Collections.Generic;
+using NHibernate.Criterion;
+using NUnit.Framework;
+
+namespace NHibernate.Test.NHSpecificTest.NH1760
+{
+ [TestFixture]
+ public class SampleTest : BugTestCase
+ {
+ private void FillDb()
+ {
+ using (ISession session = OpenSession())
+ using (var tx = session.BeginTransaction())
+ {
+ var customer = new Customer {Name = "Alkampfer"};
+ session.Save(customer);
+ var testClass = new TestClass {Id = new TestClassId{Customer = customer, SomeInt = 42}, Value = "TESTVALUE"};
+ session.Save(testClass);
+ tx.Commit();
+ }
+ }
+
+ private void Cleanup()
+ {
+ using (ISession session = OpenSession())
+ using (var tx = session.BeginTransaction())
+ {
+ session.CreateQuery("from TestClass").ExecuteUpdate();
+ session.CreateQuery("from Customer").ExecuteUpdate();
+ tx.Commit();
+ }
+ }
+
+ [Test, Ignore("Not fixed yet.")]
+ public void CanUseCriteria()
+ {
+ FillDb();
+ int hqlCount;
+ int criteriaCount;
+ using (ISession session = OpenSession())
+ {
+ IList<TestClass> retvalue =
+ session.CreateQuery("Select tc from TestClass tc where tc.Id.Customer.Name = :name").SetString("name", "Alkampfer")
+ .List<TestClass>();
+ hqlCount = retvalue.Count;
+ }
+
+ using (ISession session = OpenSession())
+ {
+ ICriteria c =
+ session.CreateCriteria(typeof (TestClass)).CreateAlias("Id.Customer", "IdCust").Add(Restrictions.Eq("IdCust.Name",
+ "Alkampfer"));
+ IList<TestClass> retvalue = c.List<TestClass>();
+ criteriaCount = retvalue.Count;
+ }
+ Assert.That(hqlCount == criteriaCount);
+ Assert.That(hqlCount, Is.EqualTo(1));
+
+ Cleanup();
+ }
+ }
+}
\ No newline at end of file
Modified: trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2009-05-13 16:35:33 UTC (rev 4291)
+++ trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2009-05-13 19:31:17 UTC (rev 4292)
@@ -377,6 +377,8 @@
<Compile Include="NHSpecificTest\NH1741\Fixture.cs" />
<Compile Include="NHSpecificTest\NH1742\DomainClass.cs" />
<Compile Include="NHSpecificTest\NH1742\Fixture.cs" />
+ <Compile Include="NHSpecificTest\NH1760\DomainClass.cs" />
+ <Compile Include="NHSpecificTest\NH1760\SampleTest.cs" />
<Compile Include="NHSpecificTest\NH645\HQLFunctionFixture.cs" />
<Compile Include="HQL\HQLFunctions.cs" />
<Compile Include="HQL\Human.cs" />
@@ -1768,6 +1770,7 @@
<EmbeddedResource Include="Deletetransient\Person.hbm.xml" />
<EmbeddedResource Include="BulkManipulation\SimpleClass.hbm.xml" />
<Content Include="DynamicEntity\package.html" />
+ <EmbeddedResource Include="NHSpecificTest\NH1760\Mappings.hbm.xml" />
<EmbeddedResource Include="MappingTest\Wicked.hbm.xml" />
<EmbeddedResource Include="NHSpecificTest\NH1393\Mappings.hbm.xml" />
<EmbeddedResource Include="NHSpecificTest\NH1391\Mappings.hbm.xml" />
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|