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