Просмотр исходного кода

Added test to verify that dispose has completed.

Gert Driesen 8 лет назад
Родитель
Сommit
5f1494f09e

+ 18 - 0
src/Renci.SshNet.Tests/Classes/Sftp/SftpFileReaderTest_DisposeShouldUnblockReadAndReadAhead.cs

@@ -22,6 +22,16 @@ namespace Renci.SshNet.Tests.Classes.Sftp
         private SftpCloseAsyncResult _closeAsyncResult;
         private SftpFileReader _reader;
         private ObjectDisposedException _actualException;
+        private ManualResetEvent _disposeCompleted;
+
+        [TestCleanup]
+        public void TearDown()
+        {
+            if (_disposeCompleted != null)
+            {
+                _disposeCompleted.Dispose();
+            }
+        }
 
         protected override void SetupData()
         {
@@ -32,6 +42,7 @@ namespace Renci.SshNet.Tests.Classes.Sftp
             _waitHandleArray = new WaitHandle[2];
             _operationTimeout = random.Next(10000, 20000);
             _closeAsyncResult = new SftpCloseAsyncResult(null, null);
+            _disposeCompleted = new ManualResetEvent(false);
         }
 
         protected override void SetupMocks()
@@ -74,6 +85,7 @@ namespace Renci.SshNet.Tests.Classes.Sftp
             {
                 Thread.Sleep(500);
                 _reader.Dispose();
+                _disposeCompleted.Set();
             });
 
             try
@@ -87,6 +99,12 @@ namespace Renci.SshNet.Tests.Classes.Sftp
             }
         }
 
+        [TestMethod]
+        public void DisposeShouldHaveCompleted()
+        {
+            Assert.IsTrue(_disposeCompleted.WaitOne(0));
+        }
+
         [TestMethod]
         public void ReadShouldHaveThrownObjectDisposedException()
         {

+ 1 - 0
src/Renci.SshNet.Tests/Renci.SshNet.Tests.csproj

@@ -21,6 +21,7 @@
     <DefineConstants>TRACE;DEBUG;FEATURE_THREAD_COUNTDOWNEVENT</DefineConstants>
     <ErrorReport>prompt</ErrorReport>
     <WarningLevel>4</WarningLevel>
+    <LangVersion>5</LangVersion>
   </PropertyGroup>
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
     <DebugType>pdbonly</DebugType>