diff --git a/Orm/Xtensive.Orm.Tests/Storage/Prefetch/PrefetchManagerBasicTest.cs b/Orm/Xtensive.Orm.Tests/Storage/Prefetch/PrefetchManagerBasicTest.cs index 2e548b5a46..af0fd35ee6 100644 --- a/Orm/Xtensive.Orm.Tests/Storage/Prefetch/PrefetchManagerBasicTest.cs +++ b/Orm/Xtensive.Orm.Tests/Storage/Prefetch/PrefetchManagerBasicTest.cs @@ -7,6 +7,7 @@ using System; using System.Collections.Generic; using System.Linq; +using System.Threading; using NUnit.Framework; using Xtensive.Core; using Xtensive.Collections; @@ -931,6 +932,15 @@ public void RemoveTest() [Test] public void ReferenceToSessionIsNotPreservedInCacheTest() + { + // Use separate method for session related processing + // to make sure we don't hold session reference somewhere on stack + OpenSessionsAndRunPrefetches(); + TestHelper.CollectGarbage(true); + Assert.That(instanceCount, Is.EqualTo(0)); + } + + private void OpenSessionsAndRunPrefetches() { instanceCount = 10; for (int i = 0; i < instanceCount; i++) { @@ -948,8 +958,6 @@ public void ReferenceToSessionIsNotPreservedInCacheTest() t.Complete(); } } - TestHelper.CollectGarbage(true); - Assert.That(instanceCount, Is.EqualTo(0)); } private void PrefetchIntrinsicFields(PrefetchManager prefetchManager, Key key, Type type)