Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/rx.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'Rx/NET/Source/Tests.System.Reactive/Tests/MySubject.cs')
-rw-r--r--Rx/NET/Source/Tests.System.Reactive/Tests/MySubject.cs53
1 files changed, 53 insertions, 0 deletions
diff --git a/Rx/NET/Source/Tests.System.Reactive/Tests/MySubject.cs b/Rx/NET/Source/Tests.System.Reactive/Tests/MySubject.cs
new file mode 100644
index 0000000..b1dd907
--- /dev/null
+++ b/Rx/NET/Source/Tests.System.Reactive/Tests/MySubject.cs
@@ -0,0 +1,53 @@
+// Copyright (c) Microsoft Open Technologies, Inc. All rights reserved. See License.txt in the project root for license information.
+
+using System;
+using System.Collections.Generic;
+using System.Reactive.Disposables;
+using System.Reactive.Subjects;
+
+namespace ReactiveTests.Tests
+{
+ class MySubject : ISubject<int>
+ {
+ private Dictionary<int, IDisposable> _disposeOn = new Dictionary<int, IDisposable>();
+
+ public void DisposeOn(int value, IDisposable disposable)
+ {
+ _disposeOn[value] = disposable;
+ }
+
+ private IObserver<int> _observer;
+
+ public void OnNext(int value)
+ {
+ _observer.OnNext(value);
+
+ IDisposable disconnect;
+ if (_disposeOn.TryGetValue(value, out disconnect))
+ disconnect.Dispose();
+ }
+
+ public void OnError(Exception exception)
+ {
+ _observer.OnError(exception);
+ }
+
+ public void OnCompleted()
+ {
+ _observer.OnCompleted();
+ }
+
+ public IDisposable Subscribe(IObserver<int> observer)
+ {
+ _subscribeCount++;
+ _observer = observer;
+ return Disposable.Create(() => { _disposed = true; });
+ }
+
+ private int _subscribeCount;
+ private bool _disposed;
+
+ public int SubscribeCount { get { return _subscribeCount; } }
+ public bool Disposed { get { return _disposed; } }
+ }
+}