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