|
From: <fab...@us...> - 2010-07-20 21:23:38
|
Revision: 5026
http://nhibernate.svn.sourceforge.net/nhibernate/?rev=5026&view=rev
Author: fabiomaulo
Date: 2010-07-20 21:23:32 +0000 (Tue, 20 Jul 2010)
Log Message:
-----------
Test for NH-2234
Modified Paths:
--------------
trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj
Added Paths:
-----------
trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2234/
trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2234/Fixture.cs
trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2234/Mappings.hbm.xml
trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2234/MyType.cs
Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2234/Fixture.cs
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2234/Fixture.cs (rev 0)
+++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2234/Fixture.cs 2010-07-20 21:23:32 UTC (rev 5026)
@@ -0,0 +1,29 @@
+using System.Linq;
+using NHibernate.Linq;
+using NUnit.Framework;
+using SharpTestsEx;
+
+namespace NHibernate.Test.NHSpecificTest.NH2234
+{
+ public class SomethingLinq
+ {
+ public virtual string Name { get; set; }
+ public virtual MyUsertype Relation { get; set; }
+ }
+
+ [TestFixture, Ignore("Not fixed yet.")]
+ public class Fixture: BugTestCase
+ {
+ [Test]
+ public void CanQueryViaLinq()
+ {
+ using (var s = OpenSession())
+ {
+ var qry = from item in s.Query<SomethingLinq>() where item.Relation == MyUserTypes.Value1 select item;
+
+ qry.ToList();
+ qry.Executing(q => q.ToList()).NotThrows();
+ }
+ }
+ }
+}
Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2234/Mappings.hbm.xml
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2234/Mappings.hbm.xml (rev 0)
+++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2234/Mappings.hbm.xml 2010-07-20 21:23:32 UTC (rev 5026)
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
+ assembly="NHibernate.Test"
+ namespace="NHibernate.Test.NHSpecificTest.NH2234">
+
+ <class name="SomethingLinq">
+ <id type="int">
+ <generator class="hilo"/>
+ </id>
+ <property name="Name"/>
+ <property name="Relation" type="NHibernate.Test.NHSpecificTest.NH2234.SimpleCustomType, NHibernate.Test"/>
+ </class>
+</hibernate-mapping>
Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2234/MyType.cs
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2234/MyType.cs (rev 0)
+++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2234/MyType.cs 2010-07-20 21:23:32 UTC (rev 5026)
@@ -0,0 +1,132 @@
+using System.Collections.Generic;
+using System.Data;
+using NHibernate.SqlTypes;
+using NHibernate.UserTypes;
+
+namespace NHibernate.Test.NHSpecificTest.NH2234
+{
+ public class MyUsertype
+ {
+ public MyUsertype(int id, string value)
+ {
+ Id = id;
+ Value = value;
+ }
+
+ public int Id { get; set; }
+ public string Value { get; set; }
+
+ public override int GetHashCode()
+ {
+ return Id.GetHashCode();
+ }
+
+ public override bool Equals(object obj)
+ {
+ var mut = obj as MyUsertype;
+ return mut != null && mut.Id == Id;
+ }
+
+ public static bool operator ==(MyUsertype left, MyUsertype right)
+ {
+ return Equals(left, right);
+ }
+
+ public static bool operator !=(MyUsertype left, MyUsertype right)
+ {
+ return !Equals(left, right);
+ }
+ }
+
+ public static class MyUserTypes
+ {
+ public static readonly List<MyUsertype> _values = new List<MyUsertype>()
+ {new MyUsertype(1, "Value 1"), new MyUsertype(2, "Value 2")};
+
+
+ public static MyUsertype Value1
+ {
+ get { return _values[0]; }
+ }
+
+ public static MyUsertype Value2
+ {
+ get { return _values[1]; }
+ }
+
+ public static MyUsertype Find(int id)
+ {
+ return _values.Find(item => item.Id == id);
+ }
+ }
+
+ public class SimpleCustomType : IUserType
+ {
+ private static readonly SqlType[] ReturnSqlTypes = { SqlTypeFactory.Int32 };
+
+
+ #region IUserType Members
+
+ public new bool Equals(object x, object y)
+ {
+ return x.Equals(y);
+ }
+
+ public int GetHashCode(object x)
+ {
+ return (x == null) ? 0 : x.GetHashCode();
+ }
+
+ public SqlType[] SqlTypes
+ {
+ get { return ReturnSqlTypes; }
+ }
+
+ public object DeepCopy(object value)
+ {
+ return value;
+ }
+
+ public void NullSafeSet(IDbCommand cmd, object value, int index)
+ {
+ if (value == null)
+ NHibernateUtil.Int32.NullSafeSet(cmd, null, index, null);
+ else
+ NHibernateUtil.Int32.NullSafeSet(cmd, ((MyUsertype)value).Id, index, null);
+ }
+
+ public System.Type ReturnedType
+ {
+ get { return typeof(MyUsertype); }
+ }
+
+ public object NullSafeGet(IDataReader rs, string[] names, object owner)
+ {
+ int value = (int)NHibernateUtil.Int32.NullSafeGet(rs, names[0], null, owner);
+ return MyUserTypes.Find(value);
+ }
+
+ public bool IsMutable
+ {
+ get { return false; }
+ }
+
+ public object Replace(object original, object target, object owner)
+ {
+ return original;
+ }
+
+ public object Assemble(object cached, object owner)
+ {
+ return cached;
+ }
+
+ public object Disassemble(object value)
+ {
+ return value;
+ }
+
+ #endregion
+ }
+
+}
Modified: trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2010-07-20 19:42:09 UTC (rev 5025)
+++ trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2010-07-20 21:23:32 UTC (rev 5026)
@@ -750,6 +750,8 @@
<Compile Include="NHSpecificTest\NH2201\Model.cs" />
<Compile Include="NHSpecificTest\NH2230\Domain.cs" />
<Compile Include="NHSpecificTest\NH2230\Fixture.cs" />
+ <Compile Include="NHSpecificTest\NH2234\Fixture.cs" />
+ <Compile Include="NHSpecificTest\NH2234\MyType.cs" />
<Compile Include="NHSpecificTest\NH473\Child.cs" />
<Compile Include="NHSpecificTest\NH473\Fixture.cs" />
<Compile Include="NHSpecificTest\NH473\Parent.cs" />
@@ -2187,6 +2189,7 @@
<EmbeddedResource Include="DriverTest\SqlServerCeEntity.hbm.xml" />
<EmbeddedResource Include="CollectionTest\NullableValueTypeElementMapFixture.hbm.xml" />
<Content Include="DynamicEntity\package.html" />
+ <EmbeddedResource Include="NHSpecificTest\NH2234\Mappings.hbm.xml" />
<EmbeddedResource Include="NHSpecificTest\NH2094\Mappings.hbm.xml" />
<EmbeddedResource Include="NHSpecificTest\NH2092\Mappings.hbm.xml" />
<EmbeddedResource Include="NHSpecificTest\NH2093\Mappings.hbm.xml" />
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|