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