|
From: <fab...@us...> - 2009-05-15 18:47:57
|
Revision: 4317
http://nhibernate.svn.sourceforge.net/nhibernate/?rev=4317&view=rev
Author: fabiomaulo
Date: 2009-05-15 18:47:52 +0000 (Fri, 15 May 2009)
Log Message:
-----------
NH-1264 fixed in some moment in the past
Modified Paths:
--------------
trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj
Added Paths:
-----------
trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1264/
trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1264/Fixture.cs
trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1264/Name.cs
trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1264/Passenger.cs
trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1264/Passenger.hbm.xml
trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1264/Reservation.cs
trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1264/Reservation.hbm.xml
Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1264/Fixture.cs
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1264/Fixture.cs (rev 0)
+++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1264/Fixture.cs 2009-05-15 18:47:52 UTC (rev 4317)
@@ -0,0 +1,79 @@
+using System.Collections;
+using System.Collections.Generic;
+using NHibernate.Criterion;
+using NUnit.Framework;
+
+namespace NHibernate.Test.NHSpecificTest.NH1264
+{
+ [TestFixture]
+ public class Fixture : TestCase
+ {
+ protected override string MappingsAssembly
+ {
+ get { return "NHibernate.Test"; }
+ }
+
+ protected override IList Mappings
+ {
+ get { return new[] {"NHSpecificTest.NH1264.Passenger.hbm.xml", "NHSpecificTest.NH1264.Reservation.hbm.xml",}; }
+ }
+
+ protected override void OnTearDown()
+ {
+ base.OnTearDown();
+ using (ISession s = OpenSession())
+ {
+ s.Delete("from Reservation r");
+ s.Delete("from Passenger p");
+ s.Flush();
+ }
+ }
+
+ [Test]
+ public void EagerFetchAnomaly()
+ {
+ ISession s = OpenSession();
+ ITransaction t = s.BeginTransaction();
+
+ var mickey = new Passenger();
+ mickey.Name = new Name();
+ mickey.Name.First = "Mickey";
+ mickey.Name.Last = "Mouse";
+ mickey.FrequentFlyerNumber = "1234";
+ s.Save(mickey);
+
+ var reservation = new Reservation();
+ reservation.ConfirmationNumber = "11111111111111";
+ reservation.Passengers.Add(mickey);
+ mickey.Reservation = reservation;
+ s.Save(reservation);
+
+ t.Commit();
+ s.Close();
+
+ s = OpenSession();
+
+ DetachedCriteria dc = DetachedCriteria.For<Reservation>().SetFetchMode("Passengers", FetchMode.Eager);
+
+ dc.CreateCriteria("Passengers").Add(Property.ForName("FrequentFlyerNumber").Eq("1234"));
+
+ IList<Reservation> results = dc.GetExecutableCriteria(s).List<Reservation>();
+
+ s.Close();
+
+ Assert.AreEqual(1, results.Count);
+ foreach (var r in results)
+ {
+ Assert.AreEqual(1, r.Passengers.Count);
+ }
+
+ s = OpenSession();
+ t = s.BeginTransaction();
+
+ s.Delete(reservation);
+
+ t.Commit();
+ s.Close();
+ }
+ }
+}
\ No newline at end of file
Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1264/Name.cs
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1264/Name.cs (rev 0)
+++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1264/Name.cs 2009-05-15 18:47:52 UTC (rev 4317)
@@ -0,0 +1,31 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace NHibernate.Test.NHSpecificTest.NH1264
+{
+ public class Name
+ {
+ private string first;
+ private string last;
+ private string display;
+
+ public string First
+ {
+ get { return first; }
+ set { first = value; }
+ }
+
+ public string Last
+ {
+ get { return last; }
+ set { last = value; }
+ }
+
+ public string Display
+ {
+ get { return display ?? first + " " + last; }
+ set { display = value; }
+ }
+ }
+}
Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1264/Passenger.cs
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1264/Passenger.cs (rev 0)
+++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1264/Passenger.cs 2009-05-15 18:47:52 UTC (rev 4317)
@@ -0,0 +1,41 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace NHibernate.Test.NHSpecificTest.NH1264
+{
+ public class Passenger
+ {
+ private int id;
+
+ public int Id
+ {
+ get { return id; }
+ set { id = value; }
+ }
+
+ private Name name;
+
+ public Name Name
+ {
+ get { return name; }
+ set { name = value; }
+ }
+
+ private string frequentFlyerNumber;
+
+ public string FrequentFlyerNumber
+ {
+ get { return frequentFlyerNumber; }
+ set { frequentFlyerNumber = value; }
+ }
+
+ private Reservation reservation;
+
+ public Reservation Reservation
+ {
+ get { return reservation; }
+ set { reservation = value; }
+ }
+ }
+}
Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1264/Passenger.hbm.xml
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1264/Passenger.hbm.xml (rev 0)
+++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1264/Passenger.hbm.xml 2009-05-15 18:47:52 UTC (rev 4317)
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
+ assembly="NHibernate.Test"
+ namespace="NHibernate.Test.NHSpecificTest.NH1264"
+ default-lazy="false">
+
+ <class name="Passenger">
+ <id name="Id">
+ <generator class="native"/>
+ </id>
+ <property name="FrequentFlyerNumber" />
+ <many-to-one name="Reservation" column="reservation_id" class="Reservation"/>
+ <component name="Name" class="Name">
+ <property name="First" />
+ <property name="Last" />
+ </component>
+ </class>
+
+</hibernate-mapping>
Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1264/Reservation.cs
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1264/Reservation.cs (rev 0)
+++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1264/Reservation.cs 2009-05-15 18:47:52 UTC (rev 4317)
@@ -0,0 +1,44 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace NHibernate.Test.NHSpecificTest.NH1264
+{
+ public class Reservation
+ {
+ private IList<Passenger> passengers;
+
+ private int id;
+
+ public int Id
+ {
+ get { return id; }
+ set { id = value; }
+ }
+
+ private string confirmationNumber;
+
+ public string ConfirmationNumber
+ {
+ get { return confirmationNumber; }
+ set { confirmationNumber = value; }
+ }
+
+ public IList<Passenger> Passengers
+ {
+ get
+ {
+ if (passengers == null)
+ {
+ passengers = new List<Passenger>();
+ }
+ return passengers;
+ }
+
+ private set
+ {
+ passengers = value;
+ }
+ }
+ }
+}
Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1264/Reservation.hbm.xml
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1264/Reservation.hbm.xml (rev 0)
+++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1264/Reservation.hbm.xml 2009-05-15 18:47:52 UTC (rev 4317)
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
+ assembly="NHibernate.Test"
+ namespace="NHibernate.Test.NHSpecificTest.NH1264"
+ default-lazy="false">
+
+ <class name="Reservation">
+ <id name="Id">
+ <generator class="native"/>
+ </id>
+ <property name="ConfirmationNumber" />
+
+ <bag name="Passengers">
+ <key column="Reservation_id"/>
+ <one-to-many class="Passenger"/>
+ </bag>
+ </class>
+
+</hibernate-mapping>
Modified: trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2009-05-15 16:38:45 UTC (rev 4316)
+++ trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2009-05-15 18:47:52 UTC (rev 4317)
@@ -331,6 +331,10 @@
<Compile Include="MappingTest\Wicked.cs" />
<Compile Include="NHSpecificTest\ElementsEnums\IntEnumsBagFixture.cs" />
<Compile Include="NHSpecificTest\ElementsEnums\Something.cs" />
+ <Compile Include="NHSpecificTest\NH1264\Fixture.cs" />
+ <Compile Include="NHSpecificTest\NH1264\Name.cs" />
+ <Compile Include="NHSpecificTest\NH1264\Passenger.cs" />
+ <Compile Include="NHSpecificTest\NH1264\Reservation.cs" />
<Compile Include="NHSpecificTest\NH1388\Fixture.cs" />
<Compile Include="NHSpecificTest\NH1574\Principal.cs" />
<Compile Include="NHSpecificTest\NH1574\SpecializedPrincipal.cs" />
@@ -1787,6 +1791,8 @@
<EmbeddedResource Include="BulkManipulation\SimpleClass.hbm.xml" />
<EmbeddedResource Include="Ado\VerySimple.hbm.xml" />
<Content Include="DynamicEntity\package.html" />
+ <EmbeddedResource Include="NHSpecificTest\NH1264\Passenger.hbm.xml" />
+ <EmbeddedResource Include="NHSpecificTest\NH1264\Reservation.hbm.xml" />
<EmbeddedResource Include="NHSpecificTest\NH1775\Member.hbm.xml" />
<EmbeddedResource Include="NHSpecificTest\NH1388\Mappings.hbm.xml" />
<EmbeddedResource Include="NHSpecificTest\ElementsEnums\SimpleWithEnums.hbm.xml" />
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|