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