1
0
Эх сурвалжийг харах

Adding a test for StableCompositeDisposable.

Bart De Smet 10 жил өмнө
parent
commit
e5c6416f07

+ 35 - 1
Rx.NET/Source/Tests.System.Reactive/Tests/Disposables/DisposableTests.cs

@@ -682,7 +682,7 @@ namespace ReactiveTests.Tests
         }
 
         [TestMethod]
-        public void StableCompositeDisposable_Nary()
+        public void StableCompositeDisposable_Nary1()
         {
             var disp1 = false;
             var d1 = Disposable.Create(() => { Assert.IsFalse(disp1); disp1 = true; });
@@ -714,5 +714,39 @@ namespace ReactiveTests.Tests
             Assert.IsTrue(disp3);
             Assert.IsTrue(d.IsDisposed);
         }
+
+        [TestMethod]
+        public void StableCompositeDisposable_Nary2()
+        {
+            var disp1 = false;
+            var d1 = Disposable.Create(() => { Assert.IsFalse(disp1); disp1 = true; });
+
+            var disp2 = false;
+            var d2 = Disposable.Create(() => { Assert.IsFalse(disp2); disp2 = true; });
+
+            var disp3 = false;
+            var d3 = Disposable.Create(() => { Assert.IsFalse(disp3); disp3 = true; });
+
+            var d = StableCompositeDisposable.Create(new List<IDisposable>(new[] { d1, d2, d3 }));
+
+            Assert.IsFalse(disp1);
+            Assert.IsFalse(disp2);
+            Assert.IsFalse(disp3);
+            Assert.IsFalse(d.IsDisposed);
+
+            d.Dispose();
+
+            Assert.IsTrue(disp1);
+            Assert.IsTrue(disp2);
+            Assert.IsTrue(disp3);
+            Assert.IsTrue(d.IsDisposed);
+
+            d.Dispose();
+
+            Assert.IsTrue(disp1);
+            Assert.IsTrue(disp2);
+            Assert.IsTrue(disp3);
+            Assert.IsTrue(d.IsDisposed);
+        }
     }
 }