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