예제 #1
0
 public void Should_fail_when_event_timing_differs()
 {
     Assert.Throws <Exception>(() =>
     {
         var scheduler = new MarbleTestScheduler();
         scheduler.ExpectObservable(Observable.Return("hello")).ToBe("--h", new { h = "hello" });
         scheduler.Flush();
     });
 }
예제 #2
0
            public void Should_create_a_hot_observable()
            {
                var expected  = new Queue <char>(new[] { 'A', 'B' });
                var scheduler = new MarbleTestScheduler();
                var source    = scheduler.CreateHotObservable <char>("--a---b--|", new { a = 'A', b = 'B' });

                source.Subscribe(x => { Assert.That(x, Is.EqualTo(expected.Dequeue())); });
                scheduler.Flush();
                Assert.That(expected.Count, Is.Zero);
            }
예제 #3
0
 public void Should_fail_when_observables_end_with_different_error_types()
 {
     Assert.Throws <Exception>(() =>
     {
         var scheduler = new MarbleTestScheduler();
         var source    = scheduler.CreateColdObservable <Unit>("---#", null, new ArgumentException());
         scheduler.ExpectObservable(source).ToBe("---#", null, new Exception());
         scheduler.Flush();
     });
 }
        public void Should_execute_the_spec()
        {
            var spec = new MarbleSpec(_scheduler, @"
                e1  : ---a-------c----
                e2  : -------b-------d
                r   : ---a---b---c----
                sub : ^------------!
            ");

            var e1 = spec.Cold <char>("e1");
            var e2 = spec.Cold <char>("e2");
            var r  = e1.Merge(e2);

            spec.ExpectObservable(r, "sub").ToBe("r");

            Assert.That(_scheduler.FlushTests.Count, Is.EqualTo(1));
            _scheduler.Flush();
            Assert.That(_scheduler.FlushTests.Count, Is.EqualTo(0));
        }
예제 #5
0
 public void TearDown()
 {
     _scheduler.Flush();
 }