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. |