|
From: <fab...@us...> - 2011-05-09 21:20:30
|
Revision: 5804
http://nhibernate.svn.sourceforge.net/nhibernate/?rev=5804&view=rev
Author: fabiomaulo
Date: 2011-05-09 21:20:24 +0000 (Mon, 09 May 2011)
Log Message:
-----------
Passing test for NH-1965
Modified Paths:
--------------
trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj
Added Paths:
-----------
trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1965/
trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1965/ReattachWithCollectionTest.cs
Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1965/ReattachWithCollectionTest.cs
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1965/ReattachWithCollectionTest.cs (rev 0)
+++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1965/ReattachWithCollectionTest.cs 2011-05-09 21:20:24 UTC (rev 5804)
@@ -0,0 +1,59 @@
+using System;
+using System.Collections.Generic;
+using NHibernate.Cfg.MappingSchema;
+using NHibernate.Mapping.ByCode;
+using NUnit.Framework;
+using SharpTestsEx;
+
+namespace NHibernate.Test.NHSpecificTest.NH1965
+{
+ public class Cat
+ {
+ public Cat()
+ {
+ Children = new List<Cat>();
+ }
+ public virtual int Id { get; set; }
+ public virtual IList<Cat> Children { get; set; }
+ }
+
+ public class ReattachWithCollectionTest: TestCaseMappingByCode
+ {
+ protected override HbmMapping GetMappings()
+ {
+ var mapper = new ModelMapper();
+ // Note: DeleteOrphans has no sense, only added to match the case reported.
+ mapper.Class<Cat>(cm =>
+ {
+ cm.Id(x => x.Id, map => map.Generator(Generators.Identity));
+ cm.Bag(x => x.Children, map => map.Cascade(Mapping.ByCode.Cascade.All.Include(Mapping.ByCode.Cascade.DeleteOrphans)), rel => rel.OneToMany());
+ });
+ var mappings = mapper.CompileMappingForAllExplicitAddedEntities();
+ return mappings;
+ }
+
+ [Test]
+ public void WhenReattachThenNotThrows()
+ {
+ var cat = new Cat();
+ using (var session = OpenSession())
+ using (session.BeginTransaction())
+ {
+ session.Save(cat);
+ session.Transaction.Commit();
+ }
+
+ using (var session = OpenSession())
+ {
+ session.Executing(x => x.Lock(cat, LockMode.None)).NotThrows();
+ }
+
+ using (var session = OpenSession())
+ using (session.BeginTransaction())
+ {
+ session.Delete(cat);
+ session.Transaction.Commit();
+ }
+ }
+ }
+}
\ 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-09 16:05:57 UTC (rev 5803)
+++ trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2011-05-09 21:20:24 UTC (rev 5804)
@@ -656,6 +656,7 @@
<Compile Include="NHSpecificTest\NH1869\Fixture.cs" />
<Compile Include="NHSpecificTest\NH1925\Fixture.cs" />
<Compile Include="NHSpecificTest\NH1925\Model.cs" />
+ <Compile Include="NHSpecificTest\NH1965\ReattachWithCollectionTest.cs" />
<Compile Include="NHSpecificTest\NH2037\Domain.cs" />
<Compile Include="NHSpecificTest\NH2037\Fixture.cs" />
<Compile Include="NHSpecificTest\NH2043\Domain.cs" />
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|