From: <aye...@us...> - 2009-05-16 06:17:49
|
Revision: 4326 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=4326&view=rev Author: ayenderahien Date: 2009-05-16 06:17:39 +0000 (Sat, 16 May 2009) Log Message: ----------- Fixing NH-1763 Modified Paths: -------------- trunk/nhibernate/src/NHibernate/Criterion/ConditionalProjection.cs trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj Added Paths: ----------- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1763/ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1763/DomainClass.cs trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1763/EmptyStringUserType.cs trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1763/Mappings.hbm.xml trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1763/SampleTest.cs Modified: trunk/nhibernate/src/NHibernate/Criterion/ConditionalProjection.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Criterion/ConditionalProjection.cs 2009-05-16 06:00:06 UTC (rev 4325) +++ trunk/nhibernate/src/NHibernate/Criterion/ConditionalProjection.cs 2009-05-16 06:17:39 UTC (rev 4326) @@ -74,7 +74,7 @@ { for (int i = 0; i < trueTypes.Length; i++) { - if(trueTypes[i] != falseTypes[i]) + if(trueTypes[i].Equals(falseTypes[i]) == false) { areEqual = false; break; Property changes on: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1763 ___________________________________________________________________ Added: bugtraq:url + http://jira.nhibernate.org/browse/%BUGID% Added: bugtraq:logregex + NH-\d+ Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1763/DomainClass.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1763/DomainClass.cs (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1763/DomainClass.cs 2009-05-16 06:17:39 UTC (rev 4326) @@ -0,0 +1,11 @@ +using System; + +namespace NHibernate.Test.NHSpecificTest.NH1763 +{ + public class Customer + { + public Int32 Id { get; set; } + public String Name { get; set; } + public string Name2 { get; set; } + } +} \ No newline at end of file Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1763/EmptyStringUserType.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1763/EmptyStringUserType.cs (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1763/EmptyStringUserType.cs 2009-05-16 06:17:39 UTC (rev 4326) @@ -0,0 +1,110 @@ +using System; +using NHibernate.Engine; +using NHibernate.UserTypes; + +namespace NHibernate.Test.NHSpecificTest.NH1763 +{ + /// <summary> + /// Summary description for EmptyStringUserType + /// </summary> + [Serializable] + public class EmptyStringUserType : ICompositeUserType + { + public EmptyStringUserType() + { + } + + public System.Type ReturnedClass + { + get + { + return typeof(string); + } + } + public bool IsMutable + { + get { return true; } + } + public String[] PropertyNames + { + get + { + return new String[] { "string" }; + } + } + + public NHibernate.Type.IType[] PropertyTypes + { + get + { + return new NHibernate.Type.IType[] { NHibernateUtil.String }; + } + } + public object Assemble(object cached, NHibernate.Engine.ISessionImplementor session, object owner) + { + return DeepCopy(cached); + } + + public object Disassemble(Object value, NHibernate.Engine.ISessionImplementor session) + { + return DeepCopy(value); + } + public Object DeepCopy(Object a) + { + if (a == null) return null; + return a; + } + + public new bool Equals(object x, object y) + { + return (x == y) || (x != null && y != null && (x.Equals(y))); + } + + public object NullSafeGet(System.Data.IDataReader rs, String[] names, NHibernate.Engine.ISessionImplementor session, Object owner) + { + return NHibernateUtil.String.NullSafeGet(rs, names[0], session, owner); + } + + public void NullSafeSet(System.Data.IDbCommand st, Object value, int index, NHibernate.Engine.ISessionImplementor session) + { + string str = null; + if (value != null) str = value.ToString().Trim(); + if (str == String.Empty) + { + str = null; + NHibernateUtil.String.NullSafeSet(st, str, index, session); + } + else + NHibernateUtil.String.NullSafeSet(st, value, index, session); + + } + + public Object GetPropertyValue(Object component, int property) + { + return null; + } + + public void SetPropertyValue(Object object1, int i, Object object2) + { + + } + + + #region ICompositeUserType Members + + + public int GetHashCode(object x) + { + return x == null ? typeof(string).GetHashCode() : x.GetHashCode(); + + } + + public object Replace(object original, object target, ISessionImplementor session, object owner) + { + return DeepCopy(original); + } + + + #endregion + } +} \ No newline at end of file Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1763/Mappings.hbm.xml =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1763/Mappings.hbm.xml (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1763/Mappings.hbm.xml 2009-05-16 06:17:39 UTC (rev 4326) @@ -0,0 +1,18 @@ +<?xml version="1.0" encoding="utf-8" ?> +<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" assembly="NHibernate.Test" + namespace="NHibernate.Test.NHSpecificTest.NH1763" + default-lazy="false"> + + <class name="Customer"> + <id name="Id"> + <generator class="native" /> + </id> + <property name="Name" type="NHibernate.Test.NHSpecificTest.NH1763.EmptyStringUserType, NHibernate.Test"> + <column name="Name"/> + </property> + <property name="Name2" type="NHibernate.Test.NHSpecificTest.NH1763.EmptyStringUserType, NHibernate.Test"> + <column name="Name2"/> + </property> + </class> + +</hibernate-mapping> \ No newline at end of file Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1763/SampleTest.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1763/SampleTest.cs (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1763/SampleTest.cs 2009-05-16 06:17:39 UTC (rev 4326) @@ -0,0 +1,23 @@ +using System.Collections.Generic; +using NHibernate.Criterion; +using NUnit.Framework; + +namespace NHibernate.Test.NHSpecificTest.NH1763 +{ + [TestFixture] + public class SampleTest : BugTestCase + { + [Test] + public void CanUseConditionalOnCompositeType() + { + using (ISession session = OpenSession()) + { + session.CreateCriteria<Customer>() + .SetProjection(Projections.Conditional(Restrictions.IdEq(1), + Projections.Property("Name"), + Projections.Property("Name2"))) + .List(); + } + } + } +} \ 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-16 06:00:06 UTC (rev 4325) +++ trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2009-05-16 06:17:39 UTC (rev 4326) @@ -399,6 +399,9 @@ <Compile Include="NHSpecificTest\NH1742\Fixture.cs" /> <Compile Include="NHSpecificTest\NH1760\DomainClass.cs" /> <Compile Include="NHSpecificTest\NH1760\SampleTest.cs" /> + <Compile Include="NHSpecificTest\NH1763\DomainClass.cs" /> + <Compile Include="NHSpecificTest\NH1763\EmptyStringUserType.cs" /> + <Compile Include="NHSpecificTest\NH1763\SampleTest.cs" /> <Compile Include="NHSpecificTest\NH1773\Domain.cs" /> <Compile Include="NHSpecificTest\NH1773\Fixture.cs" /> <Compile Include="NHSpecificTest\NH1775\Domain.cs" /> @@ -1797,6 +1800,7 @@ <EmbeddedResource Include="BulkManipulation\SimpleClass.hbm.xml" /> <EmbeddedResource Include="Ado\VerySimple.hbm.xml" /> <Content Include="DynamicEntity\package.html" /> + <EmbeddedResource Include="NHSpecificTest\NH1763\Mappings.hbm.xml" /> <EmbeddedResource Include="NHSpecificTest\ElementsEnums\SimpleWithEnumsNoName.hbm.xml" /> <EmbeddedResource Include="NHSpecificTest\ElementsEnums\SimpleWithEnumsPartialName.hbm.xml" /> <EmbeddedResource Include="NHSpecificTest\NH1343\Mappings.hbm.xml" /> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |