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/Tests.System.Reactive/Tests/BehaviorSubjectTest.cs')
-rw-r--r--Rx.NET/Tests.System.Reactive/Tests/BehaviorSubjectTest.cs336
1 files changed, 0 insertions, 336 deletions
diff --git a/Rx.NET/Tests.System.Reactive/Tests/BehaviorSubjectTest.cs b/Rx.NET/Tests.System.Reactive/Tests/BehaviorSubjectTest.cs
deleted file mode 100644
index c9a9048..0000000
--- a/Rx.NET/Tests.System.Reactive/Tests/BehaviorSubjectTest.cs
+++ /dev/null
@@ -1,336 +0,0 @@
-// Copyright (c) Microsoft Open Technologies, Inc. All rights reserved. See License.txt in the project root for license information.
-
-using System;
-using System.Reactive.Concurrency;
-using System.Reactive.Subjects;
-using Microsoft.Reactive.Testing;
-using Microsoft.VisualStudio.TestTools.UnitTesting;
-
-namespace ReactiveTests.Tests
-{
- [TestClass]
- public partial class BehaviorSubjectTest : ReactiveTest
- {
- [TestMethod]
- public void Subscribe_ArgumentChecking()
- {
- ReactiveAssert.Throws<ArgumentNullException>(() => new BehaviorSubject<int>(1).Subscribe(null));
- }
-
- [TestMethod]
- public void OnError_ArgumentChecking()
- {
- ReactiveAssert.Throws<ArgumentNullException>(() => new BehaviorSubject<int>(1).OnError(null));
- }
-
- [TestMethod]
- public void Infinite()
- {
- var scheduler = new TestScheduler();
-
- var xs = scheduler.CreateHotObservable(
- OnNext(70, 1),
- OnNext(110, 2),
- OnNext(220, 3),
- OnNext(270, 4),
- OnNext(340, 5),
- OnNext(410, 6),
- OnNext(520, 7),
- OnNext(630, 8),
- OnNext(710, 9),
- OnNext(870, 10),
- OnNext(940, 11),
- OnNext(1020, 12)
- );
-
- var subject = default(BehaviorSubject<int>);
- var subscription = default(IDisposable);
-
- var results1 = scheduler.CreateObserver<int>();
- var subscription1 = default(IDisposable);
-
- var results2 = scheduler.CreateObserver<int>();
- var subscription2 = default(IDisposable);
-
- var results3 = scheduler.CreateObserver<int>();
- var subscription3 = default(IDisposable);
-
- scheduler.ScheduleAbsolute(100, () => subject = new BehaviorSubject<int>(100));
- scheduler.ScheduleAbsolute(200, () => subscription = xs.Subscribe(subject));
- scheduler.ScheduleAbsolute(1000, () => subscription.Dispose());
-
- scheduler.ScheduleAbsolute(300, () => subscription1 = subject.Subscribe(results1));
- scheduler.ScheduleAbsolute(400, () => subscription2 = subject.Subscribe(results2));
- scheduler.ScheduleAbsolute(900, () => subscription3 = subject.Subscribe(results3));
-
- scheduler.ScheduleAbsolute(600, () => subscription1.Dispose());
- scheduler.ScheduleAbsolute(700, () => subscription2.Dispose());
- scheduler.ScheduleAbsolute(800, () => subscription1.Dispose());
- scheduler.ScheduleAbsolute(950, () => subscription3.Dispose());
-
- scheduler.Start();
-
- results1.Messages.AssertEqual(
- OnNext(300, 4),
- OnNext(340, 5),
- OnNext(410, 6),
- OnNext(520, 7)
- );
-
- results2.Messages.AssertEqual(
- OnNext(400, 5),
- OnNext(410, 6),
- OnNext(520, 7),
- OnNext(630, 8)
- );
-
- results3.Messages.AssertEqual(
- OnNext(900, 10),
- OnNext(940, 11)
- );
- }
-
- [TestMethod]
- public void Finite()
- {
- var scheduler = new TestScheduler();
-
- var xs = scheduler.CreateHotObservable(
- OnNext(70, 1),
- OnNext(110, 2),
- OnNext(220, 3),
- OnNext(270, 4),
- OnNext(340, 5),
- OnNext(410, 6),
- OnNext(520, 7),
- OnCompleted<int>(630),
- OnNext(640, 9),
- OnCompleted<int>(650),
- OnError<int>(660, new Exception())
- );
-
- var subject = default(BehaviorSubject<int>);
- var subscription = default(IDisposable);
-
- var results1 = scheduler.CreateObserver<int>();
- var subscription1 = default(IDisposable);
-
- var results2 = scheduler.CreateObserver<int>();
- var subscription2 = default(IDisposable);
-
- var results3 = scheduler.CreateObserver<int>();
- var subscription3 = default(IDisposable);
-
- scheduler.ScheduleAbsolute(100, () => subject = new BehaviorSubject<int>(100));
- scheduler.ScheduleAbsolute(200, () => subscription = xs.Subscribe(subject));
- scheduler.ScheduleAbsolute(1000, () => subscription.Dispose());
-
- scheduler.ScheduleAbsolute(300, () => subscription1 = subject.Subscribe(results1));
- scheduler.ScheduleAbsolute(400, () => subscription2 = subject.Subscribe(results2));
- scheduler.ScheduleAbsolute(900, () => subscription3 = subject.Subscribe(results3));
-
- scheduler.ScheduleAbsolute(600, () => subscription1.Dispose());
- scheduler.ScheduleAbsolute(700, () => subscription2.Dispose());
- scheduler.ScheduleAbsolute(800, () => subscription1.Dispose());
- scheduler.ScheduleAbsolute(950, () => subscription3.Dispose());
-
- scheduler.Start();
-
- results1.Messages.AssertEqual(
- OnNext(300, 4),
- OnNext(340, 5),
- OnNext(410, 6),
- OnNext(520, 7)
- );
-
- results2.Messages.AssertEqual(
- OnNext(400, 5),
- OnNext(410, 6),
- OnNext(520, 7),
- OnCompleted<int>(630)
- );
-
- results3.Messages.AssertEqual(
- OnCompleted<int>(900)
- );
- }
-
- [TestMethod]
- public void Error()
- {
- var scheduler = new TestScheduler();
-
- var ex = new Exception();
-
- var xs = scheduler.CreateHotObservable(
- OnNext(70, 1),
- OnNext(110, 2),
- OnNext(220, 3),
- OnNext(270, 4),
- OnNext(340, 5),
- OnNext(410, 6),
- OnNext(520, 7),
- OnError<int>(630, ex),
- OnNext(640, 9),
- OnCompleted<int>(650),
- OnError<int>(660, new Exception())
- );
-
- var subject = default(BehaviorSubject<int>);
- var subscription = default(IDisposable);
-
- var results1 = scheduler.CreateObserver<int>();
- var subscription1 = default(IDisposable);
-
- var results2 = scheduler.CreateObserver<int>();
- var subscription2 = default(IDisposable);
-
- var results3 = scheduler.CreateObserver<int>();
- var subscription3 = default(IDisposable);
-
- scheduler.ScheduleAbsolute(100, () => subject = new BehaviorSubject<int>(100));
- scheduler.ScheduleAbsolute(200, () => subscription = xs.Subscribe(subject));
- scheduler.ScheduleAbsolute(1000, () => subscription.Dispose());
-
- scheduler.ScheduleAbsolute(300, () => subscription1 = subject.Subscribe(results1));
- scheduler.ScheduleAbsolute(400, () => subscription2 = subject.Subscribe(results2));
- scheduler.ScheduleAbsolute(900, () => subscription3 = subject.Subscribe(results3));
-
- scheduler.ScheduleAbsolute(600, () => subscription1.Dispose());
- scheduler.ScheduleAbsolute(700, () => subscription2.Dispose());
- scheduler.ScheduleAbsolute(800, () => subscription1.Dispose());
- scheduler.ScheduleAbsolute(950, () => subscription3.Dispose());
-
- scheduler.Start();
-
- results1.Messages.AssertEqual(
- OnNext(300, 4),
- OnNext(340, 5),
- OnNext(410, 6),
- OnNext(520, 7)
- );
-
- results2.Messages.AssertEqual(
- OnNext(400, 5),
- OnNext(410, 6),
- OnNext(520, 7),
- OnError<int>(630, ex)
- );
-
- results3.Messages.AssertEqual(
- OnError<int>(900, ex)
- );
- }
-
- [TestMethod]
- public void Canceled()
- {
- var scheduler = new TestScheduler();
-
- var xs = scheduler.CreateHotObservable(
- OnCompleted<int>(630),
- OnNext(640, 9),
- OnCompleted<int>(650),
- OnError<int>(660, new Exception())
- );
-
- var subject = default(BehaviorSubject<int>);
- var subscription = default(IDisposable);
-
- var results1 = scheduler.CreateObserver<int>();
- var subscription1 = default(IDisposable);
-
- var results2 = scheduler.CreateObserver<int>();
- var subscription2 = default(IDisposable);
-
- var results3 = scheduler.CreateObserver<int>();
- var subscription3 = default(IDisposable);
-
- scheduler.ScheduleAbsolute(100, () => subject = new BehaviorSubject<int>(100));
- scheduler.ScheduleAbsolute(200, () => subscription = xs.Subscribe(subject));
- scheduler.ScheduleAbsolute(1000, () => subscription.Dispose());
-
- scheduler.ScheduleAbsolute(300, () => subscription1 = subject.Subscribe(results1));
- scheduler.ScheduleAbsolute(400, () => subscription2 = subject.Subscribe(results2));
- scheduler.ScheduleAbsolute(900, () => subscription3 = subject.Subscribe(results3));
-
- scheduler.ScheduleAbsolute(600, () => subscription1.Dispose());
- scheduler.ScheduleAbsolute(700, () => subscription2.Dispose());
- scheduler.ScheduleAbsolute(800, () => subscription1.Dispose());
- scheduler.ScheduleAbsolute(950, () => subscription3.Dispose());
-
- scheduler.Start();
-
- results1.Messages.AssertEqual(
- OnNext(300, 100)
- );
-
- results2.Messages.AssertEqual(
- OnNext(400, 100),
- OnCompleted<int>(630)
- );
-
- results3.Messages.AssertEqual(
- OnCompleted<int>(900)
- );
- }
-
- [TestMethod]
- public void SubjectDisposed()
- {
- var scheduler = new TestScheduler();
-
- var subject = default(BehaviorSubject<int>);
-
- var results1 = scheduler.CreateObserver<int>();
- var subscription1 = default(IDisposable);
-
- var results2 = scheduler.CreateObserver<int>();
- var subscription2 = default(IDisposable);
-
- var results3 = scheduler.CreateObserver<int>();
- var subscription3 = default(IDisposable);
-
- scheduler.ScheduleAbsolute(100, () => subject = new BehaviorSubject<int>(0));
- scheduler.ScheduleAbsolute(200, () => subscription1 = subject.Subscribe(results1));
- scheduler.ScheduleAbsolute(300, () => subscription2 = subject.Subscribe(results2));
- scheduler.ScheduleAbsolute(400, () => subscription3 = subject.Subscribe(results3));
- scheduler.ScheduleAbsolute(500, () => subscription1.Dispose());
- scheduler.ScheduleAbsolute(600, () => subject.Dispose());
- scheduler.ScheduleAbsolute(700, () => subscription2.Dispose());
- scheduler.ScheduleAbsolute(800, () => subscription3.Dispose());
-
- scheduler.ScheduleAbsolute(150, () => subject.OnNext(1));
- scheduler.ScheduleAbsolute(250, () => subject.OnNext(2));
- scheduler.ScheduleAbsolute(350, () => subject.OnNext(3));
- scheduler.ScheduleAbsolute(450, () => subject.OnNext(4));
- scheduler.ScheduleAbsolute(550, () => subject.OnNext(5));
- scheduler.ScheduleAbsolute(650, () => ReactiveAssert.Throws<ObjectDisposedException>(() => subject.OnNext(6)));
- scheduler.ScheduleAbsolute(750, () => ReactiveAssert.Throws<ObjectDisposedException>(() => subject.OnCompleted()));
- scheduler.ScheduleAbsolute(850, () => ReactiveAssert.Throws<ObjectDisposedException>(() => subject.OnError(new Exception())));
- scheduler.ScheduleAbsolute(950, () => ReactiveAssert.Throws<ObjectDisposedException>(() => subject.Subscribe()));
-
- scheduler.Start();
-
- results1.Messages.AssertEqual(
- OnNext(200, 1),
- OnNext(250, 2),
- OnNext(350, 3),
- OnNext(450, 4)
- );
-
- results2.Messages.AssertEqual(
- OnNext(300, 2),
- OnNext(350, 3),
- OnNext(450, 4),
- OnNext(550, 5)
- );
-
- results3.Messages.AssertEqual(
- OnNext(400, 3),
- OnNext(450, 4),
- OnNext(550, 5)
- );
- }
- }
-}