From: <jul...@us...> - 2010-09-02 14:46:03
|
Revision: 5178 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=5178&view=rev Author: julian-maughan Date: 2010-09-02 14:45:56 +0000 (Thu, 02 Sep 2010) Log Message: ----------- Adding test to demonstrate null SyncRoot on lazy loaded PersistentIdentifierBag collection (ref. NH-2111) Modified Paths: -------------- trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj Added Paths: ----------- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2111/ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2111/A.cs trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2111/Fixture.cs trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2111/Mappings.hbm.xml Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2111/A.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2111/A.cs (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2111/A.cs 2010-09-02 14:45:56 UTC (rev 5178) @@ -0,0 +1,30 @@ +using System; +using System.Collections; + +namespace NHibernate.Test.NHSpecificTest.NH2111 +{ + public class A + { + private int? _id; + private string _name; + private IList _lazyItems; + + public int? Id + { + get { return _id; } + set { _id = value; } + } + + public string Name + { + get { return _name; } + set { _name = value; } + } + + public IList LazyItems + { + get { return _lazyItems; } + set { _lazyItems = value; } + } + } +} \ No newline at end of file Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2111/Fixture.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2111/Fixture.cs (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2111/Fixture.cs 2010-09-02 14:45:56 UTC (rev 5178) @@ -0,0 +1,47 @@ +using System; +using System.Collections; + +using NUnit.Framework; + +namespace NHibernate.Test.NHSpecificTest.NH2111 +{ + [TestFixture] + public class Fixture : BugTestCase + { + protected override void OnTearDown() + { + using( ISession s = sessions.OpenSession() ) + { + s.Delete( "from A" ); + s.Flush(); + } + } + + [Test] + public void SyncRootOnLazyLoad() + { + A a = new A(); + a.Name = "first generic type"; + a.LazyItems = new ArrayList(); + a.LazyItems.Add("first string"); + a.LazyItems.Add("second string"); + a.LazyItems.Add("third string"); + + ISession s = OpenSession(); + s.SaveOrUpdate(a); + s.Flush(); + s.Close(); + + Assert.IsNotNull(a.LazyItems.SyncRoot); + Assert.AreEqual("first string", a.LazyItems[0]); + + s = OpenSession(); + a = (A)s.Load(typeof(A), a.Id); + + Assert.IsNotNull(a.LazyItems.SyncRoot); + Assert.AreEqual("first string", a.LazyItems[0]); + + s.Close(); + } + } +} \ No newline at end of file Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2111/Mappings.hbm.xml =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2111/Mappings.hbm.xml (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2111/Mappings.hbm.xml 2010-09-02 14:45:56 UTC (rev 5178) @@ -0,0 +1,25 @@ +<?xml version="1.0" encoding="utf-8" ?> +<hibernate-mapping + xmlns="urn:nhibernate-mapping-2.2" + assembly="NHibernate.Test" + namespace="NHibernate.Test.NHSpecificTest.NH2111"> + + <class name="A" table="a" lazy="false"> + + <id name="Id" column="id" unsaved-value="null"> + <generator class="native" /> + </id> + + <property name="Name" column="aname" /> + + <idbag name="LazyItems" cascade="all-delete-orphan" lazy="true"> + <collection-id type="Int32" column="item_id"> + <generator class="increment" /> + </collection-id> + <key column="a_id" /> + <element type="string" /> + </idbag> + + </class> + +</hibernate-mapping> \ No newline at end of file Modified: trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2010-09-01 18:39:43 UTC (rev 5177) +++ trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2010-09-02 14:45:56 UTC (rev 5178) @@ -455,6 +455,8 @@ <Compile Include="NHSpecificTest\NH1836\Entity.cs" /> <Compile Include="NHSpecificTest\NH1836\EntityDTO.cs" /> <Compile Include="NHSpecificTest\NH1836\Fixture.cs" /> + <Compile Include="NHSpecificTest\NH2111\A.cs" /> + <Compile Include="NHSpecificTest\NH2111\Fixture.cs" /> <Compile Include="NHSpecificTest\NH2148\BugFixture.cs" /> <Compile Include="NHSpecificTest\NH2148\Domain.cs" /> <Compile Include="NHSpecificTest\NH2224\Domain.cs" /> @@ -1752,6 +1754,7 @@ </None> <EmbeddedResource Include="NHSpecificTest\NH2224\Mappings.hbm.xml" /> <EmbeddedResource Include="NHSpecificTest\NH2279\Mappings.hbm.xml" /> + <EmbeddedResource Include="NHSpecificTest\NH2111\Mappings.hbm.xml" /> </ItemGroup> <ItemGroup> <ProjectReference Include="..\NHibernate.ByteCode.Castle\NHibernate.ByteCode.Castle.csproj"> @@ -2596,6 +2599,7 @@ <EmbeddedResource Include="DynamicEntity\Tuplizer\Customer.hbm.xml" /> </ItemGroup> <ItemGroup> + <Folder Include="NHSpecificTest\NH2111" /> <Folder Include="NHSpecificTest\NH2279" /> <Folder Include="Properties\" /> </ItemGroup> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |