Browse Source

Add test for double timeout, exercises the cancel paths

akarnokd 6 years ago
parent
commit
47c597de2c

+ 25 - 0
Ix.NET/Source/System.Interactive.Async.Tests/System/Linq/Operators/Timeout.cs

@@ -35,6 +35,31 @@ namespace Tests
             }
             }
         }
         }
 
 
+        [Fact]
+        public async Task Timeout_Double_Never()
+        {
+            var source = AsyncEnumerableEx.Never<int>()
+                .Timeout(TimeSpan.FromMilliseconds(300))
+                .Timeout(TimeSpan.FromMilliseconds(100));
+
+            var en = source.GetAsyncEnumerator();
+
+            try
+            {
+                await en.MoveNextAsync();
+
+                Assert.False(true, "MoveNextAsync should have thrown");
+            }
+            catch (TimeoutException)
+            {
+                // expected
+            }
+            finally
+            {
+                await en.DisposeAsync();
+            }
+        }
+
         [Fact]
         [Fact]
         public async Task Timeout_Delayed_Main()
         public async Task Timeout_Delayed_Main()
         {
         {