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