diff --git a/Src/NHibernate.Envers.Tests/NetSpecific/Integration/TransactionUnexpectedFlush/Entity.cs b/Src/NHibernate.Envers.Tests/NetSpecific/Integration/TransactionUnexpectedFlush/Entity.cs new file mode 100644 index 00000000..32c0f034 --- /dev/null +++ b/Src/NHibernate.Envers.Tests/NetSpecific/Integration/TransactionUnexpectedFlush/Entity.cs @@ -0,0 +1,13 @@ +using System; +using NHibernate.Envers.Configuration.Attributes; + +namespace NHibernate.Envers.Tests.NetSpecific.Integration.TransactionUnexpectedFlush +{ + [Audited] + public class Entity + { + public virtual Guid Id { get; set; } + + public virtual string Name { get; set; } + } +} diff --git a/Src/NHibernate.Envers.Tests/NetSpecific/Integration/TransactionUnexpectedFlush/Mapping.hbm.xml b/Src/NHibernate.Envers.Tests/NetSpecific/Integration/TransactionUnexpectedFlush/Mapping.hbm.xml new file mode 100644 index 00000000..77071e5f --- /dev/null +++ b/Src/NHibernate.Envers.Tests/NetSpecific/Integration/TransactionUnexpectedFlush/Mapping.hbm.xml @@ -0,0 +1,11 @@ + + + + + + + + + diff --git a/Src/NHibernate.Envers.Tests/NetSpecific/Integration/TransactionUnexpectedFlush/TransactionUnexpectedFlushTest.cs b/Src/NHibernate.Envers.Tests/NetSpecific/Integration/TransactionUnexpectedFlush/TransactionUnexpectedFlushTest.cs new file mode 100644 index 00000000..420bf81e --- /dev/null +++ b/Src/NHibernate.Envers.Tests/NetSpecific/Integration/TransactionUnexpectedFlush/TransactionUnexpectedFlushTest.cs @@ -0,0 +1,45 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using NUnit.Framework; + +namespace NHibernate.Envers.Tests.NetSpecific.Integration.TransactionUnexpectedFlush +{ + public class TransactionUnexpectedFlushTest : TestBase + { + public TransactionUnexpectedFlushTest(AuditStrategyForTest strategyType) + : base(strategyType) + { + } + + protected override IEnumerable Mappings => new[] {"NetSpecific.Integration.TransactionUnexpectedFlush.Mapping.hbm.xml"}; + + protected override void Initialize() + { + } + + [Test] + public void GetCurrentRevision_PersistIsTrue_ShouldNotFlushUncommitedChanges() + { + // Arrange + var entity = new Entity { Id = Guid.NewGuid(), Name = "entity name" }; + + int notCommitedTransactionEntitiesCount = 0; + + // Act + using (var tx = Session.BeginTransaction()) + { + Session.Save(entity); + + AuditReader().GetCurrentRevision(true); + + notCommitedTransactionEntitiesCount = Session.Query().Count(); + + tx.Commit(); + } + + // Assert + Assert.Zero(notCommitedTransactionEntitiesCount); + } + } +}