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