From: <pa...@us...> - 2011-05-25 22:58:54
|
Revision: 5872 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=5872&view=rev Author: patearl Date: 2011-05-25 22:58:47 +0000 (Wed, 25 May 2011) Log Message: ----------- NH-2721: Added ignored test. Modified Paths: -------------- trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj Added Paths: ----------- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2721/ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2721/A.cs trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2721/B.cs trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2721/Fixture.cs trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2721/Mappings.hbm.xml Copied: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2721/A.cs (from rev 5848, trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2279/A.cs) =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2721/A.cs (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2721/A.cs 2011-05-25 22:58:47 UTC (rev 5872) @@ -0,0 +1,29 @@ +using System; +using System.Collections; +using System.Collections.Generic; + +namespace NHibernate.Test.NHSpecificTest.NH2721 +{ + public class A + { + private IList<B> _bs = new List<B>(); + + public A() + { + } + + public A(string name) + { + Name = name; + } + + public int? Id { get; set; } + public string Name { get; set; } + + public IList<B> Bs + { + get { return _bs; } + set { _bs = value; } + } + } +} Copied: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2721/B.cs (from rev 5848, trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2279/B.cs) =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2721/B.cs (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2721/B.cs 2011-05-25 22:58:47 UTC (rev 5872) @@ -0,0 +1,22 @@ +using System; +using System.Collections; +using System.Collections.Generic; + +namespace NHibernate.Test.NHSpecificTest.NH2721 +{ + public class B + { + public B() + { + } + + public B(string name) + { + Name = name; + } + + public int? Id { get; set; } + public string Name { get; set; } + public A A { get; set; } + } +} Copied: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2721/Fixture.cs (from rev 5848, trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2279/Fixture.cs) =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2721/Fixture.cs (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2721/Fixture.cs 2011-05-25 22:58:47 UTC (rev 5872) @@ -0,0 +1,68 @@ +using System.Collections.Generic; +using System.Linq; +using System.Collections; + +using NUnit.Framework; + +namespace NHibernate.Test.NHSpecificTest.NH2721 +{ + [TestFixture] + public class Fixture : BugTestCase + { + protected override void OnTearDown() + { + using( ISession s = sessions.OpenSession() ) + { + s.Delete("from A"); + s.Flush(); + } + } + + [Test] + [Ignore("Does not work because of extraneous update that sets reference to A to null. Can be worked-around by removing not-null on reference to A.")] + public void ListRemoveInsert() + { + A a = new A("a"); + + B b1 = new B("b1"); + a.Bs.Add(b1); + b1.A = a; + + B b2 = new B("b2"); + a.Bs.Add(b2); + b2.A = a; + + B b3 = new B("b3"); + a.Bs.Add(b3); + b3.A = a; + + using (ISession s = OpenSession()) + { + s.SaveOrUpdate(a); + s.Flush(); + } + + using (ISession s = OpenSession()) + { + a = (A) s.Load(typeof (A), a.Id); + CollectionAssert.AreEquivalent(new[] {"b1", "b2", "b3"}, a.Bs.Select(b => b.Name)); + + B removed = a.Bs[2]; + a.Bs.Remove(removed); + a.Bs.Insert(1, removed); + Assert.IsNotNull(a.Bs[0].A); + Assert.IsNotNull(a.Bs[1].A); + Assert.IsNotNull(a.Bs[2].A); + CollectionAssert.AreEquivalent(new[] {"b1", "b3", "b2"}, a.Bs.Select(b => b.Name)); + s.SaveOrUpdate(a); + s.Flush(); + } + + using (ISession s = OpenSession()) + { + a = (A) s.Load(typeof (A), a.Id); + CollectionAssert.AreEquivalent(new[] { "b1", "b3", "b2" }, a.Bs.Select(b => b.Name)); + } + } + } +} \ No newline at end of file Copied: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2721/Mappings.hbm.xml (from rev 5848, trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2279/Mappings.hbm.xml) =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2721/Mappings.hbm.xml (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2721/Mappings.hbm.xml 2011-05-25 22:58:47 UTC (rev 5872) @@ -0,0 +1,27 @@ +<?xml version="1.0" encoding="utf-8" ?> +<hibernate-mapping + xmlns="urn:nhibernate-mapping-2.2" + assembly="NHibernate.Test" + namespace="NHibernate.Test.NHSpecificTest.NH2721"> + + <class name="A" table="a" lazy="false"> + <id name="Id" column="id" unsaved-value="null"> + <generator class="native" /> + </id> + <property name="Name" column="name" /> + <list name="Bs" cascade="all-delete-orphan" inverse="false"> + <key column="a_id" /> + <index column="position" /> + <one-to-many class="B" /> + </list> + </class> + + <class name="B" table="b" lazy="false"> + <id name="Id" column="id" unsaved-value="null"> + <generator class="native" /> + </id> + <many-to-one name="A" class="A" column="a_id" not-null="true"/> + <property name="Name" column="name" /> + </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 2011-05-25 21:16:01 UTC (rev 5871) +++ trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2011-05-25 22:58:47 UTC (rev 5872) @@ -854,6 +854,9 @@ <Compile Include="NHSpecificTest\NH2705\SubItemBase.cs" /> <Compile Include="NHSpecificTest\NH2705\SubItemDetails.cs" /> <Compile Include="NHSpecificTest\NH2705\Test.cs" /> + <Compile Include="NHSpecificTest\NH2721\A.cs" /> + <Compile Include="NHSpecificTest\NH2721\B.cs" /> + <Compile Include="NHSpecificTest\NH2721\Fixture.cs" /> <Compile Include="NHSpecificTest\NH2733\Fixture.cs" /> <Compile Include="NHSpecificTest\NH2733\Model.cs" /> <Compile Include="NHSpecificTest\Properties\CompositePropertyRefTest.cs" /> @@ -2698,6 +2701,7 @@ <EmbeddedResource Include="NHSpecificTest\NH1291AnonExample\Mappings.hbm.xml" /> </ItemGroup> <ItemGroup> + <EmbeddedResource Include="NHSpecificTest\NH2721\Mappings.hbm.xml" /> <EmbeddedResource Include="NHSpecificTest\NH2733\Mappings.hbm.xml" /> <EmbeddedResource Include="NHSpecificTest\NH2317\Mappings.hbm.xml" /> <EmbeddedResource Include="NHSpecificTest\NH2366\Mappings.hbm.xml" /> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |