|
From: <aye...@us...> - 2010-01-27 13:53:51
|
Revision: 4933
http://nhibernate.svn.sourceforge.net/nhibernate/?rev=4933&view=rev
Author: ayenderahien
Date: 2010-01-27 13:53:45 +0000 (Wed, 27 Jan 2010)
Log Message:
-----------
Adding appropriate alert for non auto prop ghost property
Modified Paths:
--------------
trunk/nhibernate/src/NHibernate/Tuple/Entity/EntityMetamodel.cs
trunk/nhibernate/src/NHibernate.Test/GhostProperty/GhostPropertyFixture.cs
trunk/nhibernate/src/NHibernate.Test/GhostProperty/Order.cs
Modified: trunk/nhibernate/src/NHibernate/Tuple/Entity/EntityMetamodel.cs
===================================================================
--- trunk/nhibernate/src/NHibernate/Tuple/Entity/EntityMetamodel.cs 2010-01-26 23:28:18 UTC (rev 4932)
+++ trunk/nhibernate/src/NHibernate/Tuple/Entity/EntityMetamodel.cs 2010-01-27 13:53:45 UTC (rev 4933)
@@ -303,7 +303,8 @@
{
foreach (var prop in persistentClass.PropertyClosureIterator)
{
- if (prop.IsLazy == false && prop.UnwrapProxy)
+ if (prop.IsLazy == false &&
+ prop.UnwrapProxy == false)
continue;
var getter = prop.GetGetter(persistentClass.MappedClass);
Modified: trunk/nhibernate/src/NHibernate.Test/GhostProperty/GhostPropertyFixture.cs
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/GhostProperty/GhostPropertyFixture.cs 2010-01-26 23:28:18 UTC (rev 4932)
+++ trunk/nhibernate/src/NHibernate.Test/GhostProperty/GhostPropertyFixture.cs 2010-01-27 13:53:45 UTC (rev 4933)
@@ -1,6 +1,7 @@
using System.Collections;
using NHibernate.ByteCode.Castle;
using NHibernate.Cfg;
+using NHibernate.Tuple.Entity;
using NUnit.Framework;
namespace NHibernate.Test.GhostProperty
@@ -8,6 +9,8 @@
[TestFixture]
public class GhostPropertyFixture : TestCase
{
+ private string log;
+
protected override string MappingsAssembly
{
get { return "NHibernate.Test"; }
@@ -55,7 +58,22 @@
}
}
+ protected override void BuildSessionFactory()
+ {
+ using (var logSpy = new LogSpy(typeof(EntityMetamodel)))
+ {
+ base.BuildSessionFactory();
+ log = logSpy.GetWholeLog();
+ }
+ }
+
[Test]
+ public void ShouldGenerateErrorForNonAutoPropGhostProp()
+ {
+ Assert.IsTrue(log.Contains("Lazy or ghost property NHibernate.Test.GhostProperty.Order.Payment is not an auto property, which may result in uninitialized property access"));
+ }
+
+ [Test]
public void CanGetActualValueFromLazyManyToOne()
{
using (ISession s = OpenSession())
Modified: trunk/nhibernate/src/NHibernate.Test/GhostProperty/Order.cs
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/GhostProperty/Order.cs 2010-01-26 23:28:18 UTC (rev 4932)
+++ trunk/nhibernate/src/NHibernate.Test/GhostProperty/Order.cs 2010-01-27 13:53:45 UTC (rev 4933)
@@ -3,7 +3,13 @@
public class Order
{
public virtual int Id { get; set; }
- public virtual Payment Payment { get; set; }
+ private Payment payment;
+
+ public virtual Payment Payment
+ {
+ get { return payment; }
+ set { payment = value; }
+ }
}
public abstract class Payment
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|