diff --git a/src/NHibernate.Test/NHibernate.Test.csproj b/src/NHibernate.Test/NHibernate.Test.csproj index 0c57966358b..c60b89ab659 100644 --- a/src/NHibernate.Test/NHibernate.Test.csproj +++ b/src/NHibernate.Test/NHibernate.Test.csproj @@ -2483,6 +2483,7 @@ + @@ -2544,7 +2545,9 @@ Designer - + + Designer + diff --git a/src/NHibernate.Test/VersionTest/Db/LazyVersionTest.cs b/src/NHibernate.Test/VersionTest/Db/LazyVersionTest.cs new file mode 100644 index 00000000000..bda1a83479a --- /dev/null +++ b/src/NHibernate.Test/VersionTest/Db/LazyVersionTest.cs @@ -0,0 +1,65 @@ +using System; +using System.Collections.Generic; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Xml; +using NHibernate.Bytecode.CodeDom; +using NHibernate.Cfg; +using NHibernate.Mapping.ByCode; +using NHibernate.Test.Linq; +using NUnit.Framework; + +namespace NHibernate.Test.VersionTest.Db +{ + public class ProductWithVersionAndLazyProperty + { + byte[] _version = null; + + public virtual int Id { get; set; } + + public virtual string Summary { get; set; } + + public virtual byte[] Version { get { return _version; } } + } + + [TestFixture] + public class LazyVersionTest : LinqTestCase + { + + protected override void AddMappings(Configuration configuration) + { + var xml = ""; + var doc = new XmlDocument(); + doc.LoadXml(xml); + + configuration.AddDocument(doc); + + base.AddMappings(configuration); + + configuration.SetProperty(NHibernate.Cfg.Environment.Hbm2ddlAuto, SchemaAutoAction.Recreate.ToString()); + configuration.SetProperty(NHibernate.Cfg.Environment.FormatSql, Boolean.TrueString); + configuration.SetProperty(NHibernate.Cfg.Environment.ShowSql, Boolean.TrueString); + } + + [Test] + public void CanUseVersionOnEntityWithLazyProperty() + { + //NH-3589 + using (session.BeginTransaction()) + { + this.session.Save(new ProductWithVersionAndLazyProperty { Id = 1, Summary = "Testing, 1, 2, 3" }); + + session.Flush(); + + this.session.Clear(); + + var p = this.session.Get(1); + + p.Summary += ", 4!"; + + session.Flush(); + } + } + } +}