From: <aye...@us...> - 2009-02-12 07:05:37
|
Revision: 4083 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=4083&view=rev Author: ayenderahien Date: 2009-02-12 07:05:27 +0000 (Thu, 12 Feb 2009) Log Message: ----------- Adding passing tests - evict behavior Modified Paths: -------------- trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj Added Paths: ----------- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/Evicting/ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/Evicting/Employee.cs trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/Evicting/Fixture.cs trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/Evicting/Mappings.hbm.xml Property changes on: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/Evicting ___________________________________________________________________ Added: svn:mergeinfo + Copied: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/Evicting/Employee.cs (from rev 4082, trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1001/Employee.cs) =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/Evicting/Employee.cs (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/Evicting/Employee.cs 2009-02-12 07:05:27 UTC (rev 4083) @@ -0,0 +1,33 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace NHibernate.Test.NHSpecificTest.Evicting +{ + public class Employee + { + private int id; + + public int Id + { + get { return id; } + set { id = value; } + } + + private string firstName; + + public string FirstName + { + get { return firstName; } + set { firstName = value; } + } + + private string lastName; + + public string LastName + { + get { return lastName; } + set { lastName = value; } + } + } +} Property changes on: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/Evicting/Employee.cs ___________________________________________________________________ Added: svn:keywords + Id HeadUrl Added: svn:mergeinfo + Copied: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/Evicting/Fixture.cs (from rev 4082, trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1001/Fixture.cs) =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/Evicting/Fixture.cs (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/Evicting/Fixture.cs 2009-02-12 07:05:27 UTC (rev 4083) @@ -0,0 +1,108 @@ +using NHibernate.Cfg; +using NUnit.Framework; +using NHibernate.Stat; + +namespace NHibernate.Test.NHSpecificTest.Evicting +{ + [TestFixture] + public class Fixture : BugTestCase + { + public override string BugNumber + { + get { return "Evicting"; } + } + + protected override void OnSetUp() + { + base.OnSetUp(); + using (var session = sessions.OpenSession()) + using (var tx = session.BeginTransaction()) + { + session.Save(new Employee + { + Id = 1, + FirstName = "a", + LastName = "b" + }); + tx.Commit(); + } + } + + protected override void OnTearDown() + { + using (var session = sessions.OpenSession()) + using (var tx = session.BeginTransaction()) + { + session.Delete(session.Load<Employee>(1)); + + tx.Commit(); + } + base.OnTearDown(); + } + + + [Test] + public void Can_evict_entity_from_session() + { + using (var session = sessions.OpenSession()) + using (var tx = session.BeginTransaction()) + { + var employee = session.Load<Employee>(1); + Assert.IsTrue(session.Contains(employee)); + + session.Evict(employee); + + Assert.IsFalse(session.Contains(employee)); + + tx.Commit(); + } + } + + [Test] + public void Can_evict_non_persistent_object() + { + + using (var session = sessions.OpenSession()) + using (var tx = session.BeginTransaction()) + { + var employee = new Employee(); + Assert.IsFalse(session.Contains(employee)); + + session.Evict(employee); + + Assert.IsFalse(session.Contains(employee)); + + tx.Commit(); + } + } + + [Test] + public void Can_evict_when_trying_to_evict_entity_from_another_session() + { + + using (var session1 = sessions.OpenSession()) + using (var tx1 = session1.BeginTransaction()) + { + + using (var session2 = sessions.OpenSession()) + using (var tx2 = session2.BeginTransaction()) + { + var employee = session2.Load<Employee>(1); + Assert.IsFalse(session1.Contains(employee)); + Assert.IsTrue(session2.Contains(employee)); + + session1.Evict(employee); + + Assert.IsFalse(session1.Contains(employee)); + + Assert.IsTrue(session2.Contains(employee)); + + tx2.Commit(); + } + + tx1.Commit(); + } + } + + } +} Property changes on: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/Evicting/Fixture.cs ___________________________________________________________________ Added: svn:keywords + Id HeadUrl Added: svn:mergeinfo + Copied: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/Evicting/Mappings.hbm.xml (from rev 4082, trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1001/Mappings.hbm.xml) =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/Evicting/Mappings.hbm.xml (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/Evicting/Mappings.hbm.xml 2009-02-12 07:05:27 UTC (rev 4083) @@ -0,0 +1,16 @@ +<?xml version="1.0" encoding="utf-8" ?> +<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" + namespace="NHibernate.Test.NHSpecificTest.Evicting" + assembly="NHibernate.Test"> + + + <class name="Employee" table="EMPLOYEES" lazy="false"> + <id name="Id" column="EMPLOYEE_ID" type="Int32"> + <generator class="assigned" /> + </id> + + <property name="FirstName" column="FIRST_NAME" type="String" /> + <property name="LastName" column="LAST_NAME" type="String" /> + + </class> +</hibernate-mapping> Property changes on: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/Evicting/Mappings.hbm.xml ___________________________________________________________________ Added: svn:mergeinfo + Modified: trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2009-02-09 20:01:34 UTC (rev 4082) +++ trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2009-02-12 07:05:27 UTC (rev 4083) @@ -395,6 +395,8 @@ <Compile Include="NHSpecificTest\Dates\DateTime2Fixture.cs" /> <Compile Include="NHSpecificTest\Dates\DateTimeAssert.cs" /> <Compile Include="NHSpecificTest\EntityModeToTuplizerPerf\Fixture.cs" /> + <Compile Include="NHSpecificTest\Evicting\Employee.cs" /> + <Compile Include="NHSpecificTest\Evicting\Fixture.cs" /> <Compile Include="NHSpecificTest\FileStreamSql2008\VendorCatalog.cs" /> <Compile Include="NHSpecificTest\FileStreamSql2008\Fixture.cs" /> <Compile Include="NHSpecificTest\FileStreamSql2008\Convert.cs" /> @@ -1657,6 +1659,7 @@ <EmbeddedResource Include="Cascade\JobBatch.hbm.xml" /> <EmbeddedResource Include="Deletetransient\Person.hbm.xml" /> <Content Include="DynamicEntity\package.html" /> + <EmbeddedResource Include="NHSpecificTest\Evicting\Mappings.hbm.xml" /> <EmbeddedResource Include="NHSpecificTest\NH1490\MappingsFilterAsBoolean.hbm.xml" /> <EmbeddedResource Include="NHSpecificTest\NH1293\MappingsFilterAsBoolean.hbm.xml" /> <EmbeddedResource Include="SqlTest\Custom\MySQL\MySQLEmployment.hbm.xml" /> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |