|
From: <fab...@us...> - 2008-07-25 06:15:46
|
Revision: 3663
http://nhibernate.svn.sourceforge.net/nhibernate/?rev=3663&view=rev
Author: fabiomaulo
Date: 2008-07-25 06:15:55 +0000 (Fri, 25 Jul 2008)
Log Message:
-----------
NH-1408 not an issue in Trunk
Modified Paths:
--------------
trunk/nhibernate/src/NHibernate.Test/NHibernate.Test-2.0.csproj
Added Paths:
-----------
trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1408/
trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1408/DbResource.cs
trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1408/DbResourceKey.cs
trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1408/DetachedSubCriteriaTest.cs
trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1408/Entity.cs
trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1408/Mappings.hbm.xml
Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1408/DbResource.cs
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1408/DbResource.cs (rev 0)
+++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1408/DbResource.cs 2008-07-25 06:15:55 UTC (rev 3663)
@@ -0,0 +1,84 @@
+using System.Collections.Generic;
+
+namespace NHibernate.Test.NHSpecificTest.NH1408
+{
+ public abstract class DbResource : Entity
+ {
+ private readonly IList<DbResourceKey> keys = new List<DbResourceKey>();
+ private string rawValue;
+
+ protected virtual string RawValue
+ {
+ get { return rawValue; }
+ set { rawValue = value; }
+ }
+
+ public virtual IEnumerable<DbResourceKey> Keys
+ {
+ get { return keys; }
+ }
+
+ public abstract object Value { get; set; }
+
+ public virtual void AddKey(DbResourceKey key)
+ {
+ if (keys.Contains(key))
+ {
+ return;
+ }
+ keys.Add(key);
+ key.Resource = this;
+ }
+ }
+
+ internal class StringDbResource : DbResource
+ {
+ protected StringDbResource() {}
+
+ public StringDbResource(string key, string language, string value)
+ {
+ AddKey(new DbResourceKey(key, language));
+ Value = value;
+ }
+
+ public override object Value
+ {
+ get { return RawValue; }
+ set { RawValue = (string) value; }
+ }
+ }
+
+ internal class IntDbResource : DbResource
+ {
+ protected IntDbResource() {}
+
+ public IntDbResource(string key, int xml)
+ {
+ AddKey(new DbResourceKey(key));
+ Value = xml;
+ }
+
+ public override object Value
+ {
+ get { return int.Parse(RawValue); }
+ set { RawValue = ((int) value).ToString(); }
+ }
+ }
+
+ internal class DecimalDbResource : DbResource
+ {
+ protected DecimalDbResource() {}
+
+ public DecimalDbResource(string key, decimal xml)
+ {
+ AddKey(new DbResourceKey(key));
+ Value = xml;
+ }
+
+ public override object Value
+ {
+ get { return decimal.Parse(RawValue); }
+ set { RawValue = ((decimal) value).ToString(); }
+ }
+ }
+}
\ No newline at end of file
Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1408/DbResourceKey.cs
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1408/DbResourceKey.cs (rev 0)
+++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1408/DbResourceKey.cs 2008-07-25 06:15:55 UTC (rev 3663)
@@ -0,0 +1,37 @@
+namespace NHibernate.Test.NHSpecificTest.NH1408
+{
+ public class DbResourceKey : Entity
+ {
+ private readonly object[] keys = new object[2];
+ private DbResource resource;
+
+ protected DbResourceKey() {}
+
+ public DbResourceKey(string resourceId) : this(resourceId, null) {}
+
+ public DbResourceKey(string resourceId, string language)
+ {
+ keys[0] = resourceId;
+ keys[1] = language;
+ }
+
+ // used just for hibernate mappings
+ public virtual object Key0
+ {
+ get { return keys[0]; }
+ set { keys[0] = value; }
+ }
+
+ public virtual object Key1
+ {
+ get { return keys[1]; }
+ set { keys[1] = value; }
+ }
+
+ public virtual DbResource Resource
+ {
+ get { return resource; }
+ internal set { resource = value; }
+ }
+ }
+}
\ No newline at end of file
Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1408/DetachedSubCriteriaTest.cs
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1408/DetachedSubCriteriaTest.cs (rev 0)
+++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1408/DetachedSubCriteriaTest.cs 2008-07-25 06:15:55 UTC (rev 3663)
@@ -0,0 +1,26 @@
+using NHibernate.Criterion;
+using NUnit.Framework;
+
+namespace NHibernate.Test.NHSpecificTest.NH1408
+{
+ [TestFixture]
+ public class DetachedSubCriteriaTest : BugTestCase
+ {
+ [Test]
+ public void Test()
+ {
+ DetachedCriteria criteria = DetachedCriteria.For(typeof (DbResource));
+ DetachedCriteria keyCriteria = criteria.CreateCriteria("keys");
+ keyCriteria.Add(Restrictions.Eq("Key0", "2"));
+ keyCriteria.Add(Restrictions.Eq("Key1", "en"));
+ using (ISession session = OpenSession())
+ {
+ ICriteria icriteria = CriteriaTransformer.Clone(criteria).GetExecutableCriteria(session);
+ icriteria.SetFirstResult(0);
+ icriteria.SetMaxResults(1);
+ icriteria.List<DbResource>();
+ // should not throw when parse the criteria
+ }
+ }
+ }
+}
\ No newline at end of file
Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1408/Entity.cs
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1408/Entity.cs (rev 0)
+++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1408/Entity.cs 2008-07-25 06:15:55 UTC (rev 3663)
@@ -0,0 +1,20 @@
+namespace NHibernate.Test.NHSpecificTest.NH1408
+{
+ public abstract class Entity
+ {
+ private long oid;
+ private int version;
+
+ public virtual long Oid
+ {
+ get { return oid; }
+ set { oid = value; }
+ }
+
+ public virtual int Version
+ {
+ get { return version; }
+ set { version = value; }
+ }
+ }
+}
\ No newline at end of file
Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1408/Mappings.hbm.xml
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1408/Mappings.hbm.xml (rev 0)
+++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1408/Mappings.hbm.xml 2008-07-25 06:15:55 UTC (rev 3663)
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
+ assembly="NHibernate.Test"
+ namespace="NHibernate.Test.NHSpecificTest.NH1408">
+
+ <class name="DbResource" table="Resources">
+ <cache usage="nonstrict-read-write" />
+ <id name="Oid" column="ID">
+ <generator class="identity"/>
+ </id>
+ <discriminator column="Type" type="String(25)" not-null="true" />
+ <version name="Version" column="Version" />
+
+ <bag name="keys" inverse="true" access="field" lazy="true" optimistic-lock="false"
+ cascade="all-delete-orphan">
+ <key column="ResourceId" />
+ <one-to-many class="DbResourceKey" />
+ </bag>
+
+ <property name="RawValue" type="StringClob">
+ <column name="Value" sql-type="ntext" not-null="true" />
+ </property>
+
+ <subclass name="StringDbResource" discriminator-value="string" />
+ <subclass name="IntDbResource" discriminator-value="int" />
+ <subclass name="DecimalDbResource" discriminator-value="decimal" />
+ </class>
+
+ <class name="DbResourceKey" table="ResourceKeys">
+ <cache usage="nonstrict-read-write" />
+ <id name="Oid" column="ID">
+ <generator class="identity"/>
+ </id>
+
+ <version name="Version" column="Version" />
+
+ <many-to-one name="Resource" column="ResourceId" class="DbResource" foreign-key="FK_RESOURCEKEYS_TO_RESOURCES" />
+ <property name="Key0" column="Key0" type="String(25)" index="RES_KEY0_IDX" />
+ <property name="Key1" column="Key1" type="String(25)" index="RES_KEY1_IDX" />
+ </class>
+</hibernate-mapping>
\ No newline at end of file
Modified: trunk/nhibernate/src/NHibernate.Test/NHibernate.Test-2.0.csproj
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/NHibernate.Test-2.0.csproj 2008-07-25 05:09:20 UTC (rev 3662)
+++ trunk/nhibernate/src/NHibernate.Test/NHibernate.Test-2.0.csproj 2008-07-25 06:15:55 UTC (rev 3663)
@@ -407,6 +407,10 @@
<Compile Include="NHSpecificTest\NH1403\Person.cs" />
<Compile Include="NHSpecificTest\NH1405\Column.cs" />
<Compile Include="NHSpecificTest\NH1405\Fixture.cs" />
+ <Compile Include="NHSpecificTest\NH1408\DbResource.cs" />
+ <Compile Include="NHSpecificTest\NH1408\DbResourceKey.cs" />
+ <Compile Include="NHSpecificTest\NH1408\DetachedSubCriteriaTest.cs" />
+ <Compile Include="NHSpecificTest\NH1408\Entity.cs" />
<Compile Include="NHSpecificTest\NH280\Fixture.cs" />
<Compile Include="NHSpecificTest\NH280\Foo.cs" />
<Compile Include="NHSpecificTest\NH1018\Employee.cs" />
@@ -1385,6 +1389,7 @@
<EmbeddedResource Include="Any\Person.hbm.xml" />
<EmbeddedResource Include="Any\Properties.hbm.xml" />
<Content Include="DynamicEntity\package.html" />
+ <EmbeddedResource Include="NHSpecificTest\NH1408\Mappings.hbm.xml" />
<EmbeddedResource Include="NHSpecificTest\NH1393\Mappings.hbm.xml" />
<EmbeddedResource Include="NHSpecificTest\NH1394\Mappings.hbm.xml" />
<EmbeddedResource Include="NHSpecificTest\NH1405\Mappings.hbm.xml" />
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|