Ejemplo n.º 1
0
        public void Execute_WithObservableYielding3Values_ShouldReturnCorrectResult(
            object value1,
            object value2,
            object value3,
            TestSchedulers schedulers,
            ThrowingTestScheduler scheduler)
        {
            //arrange

            var observable = scheduler.CreateColdObservable(OnNext(10, value1),
                                                            OnNext(20, value2),
                                                            OnNext(30, value3),
                                                            OnCompleted(40, new object()));
            var observer = scheduler.CreateObserver <object>();
            var sut      = new ObservableMvvmCommand <object, object>(o => observable, schedulers, schedulers, "name", new AlwaysTrueCanExecuteStrategy <object>(), doObserver: () => observer, doScheduler: ImmediateScheduler.Instance);

            //act
            sut.Execute(null);
            //allow any work scheduled with the schedulers to advance
            schedulers.AdvanceBy(200);
            //allow notifications to advance
            scheduler.AdvanceBy(200);

            //assert
            observer.Messages.AssertEqual(OnNext(10, value1),
                                          OnNext(20, value2),
                                          OnNext(30, value3),
                                          OnCompleted(40, new object()));
        }
Ejemplo n.º 2
0
		public void Execute_WithObservableYielding3Values_ShouldReturnCorrectResult(
			object value1,
			object value2,
			object value3,
			TestSchedulers schedulers,
			ThrowingTestScheduler scheduler)
		{
			//arrange

			var observable = scheduler.CreateColdObservable(OnNext(10, value1),
				OnNext(20, value2),
				OnNext(30, value3),
				OnCompleted(40, new object()));
			var observer = scheduler.CreateObserver<object>();
			var sut = new ObservableMvvmCommand<object, object>(o => observable, schedulers, schedulers, "name", new AlwaysTrueCanExecuteStrategy<object>(), doObserver: () => observer, doScheduler: ImmediateScheduler.Instance);

			//act
			sut.Execute(null);
			//allow any work scheduled with the schedulers to advance
			schedulers.AdvanceBy(200);
			//allow notifications to advance
			scheduler.AdvanceBy(200);

			//assert
			observer.Messages.AssertEqual(OnNext(10, value1),
				OnNext(20, value2),
				OnNext(30, value3),
				OnCompleted(40, new object()));
		}