Esempio n. 1
0
		public void ViewModel_WhenInitialized_WithRefreshOnCollectionUpdateNotification_ShouldRefresh(
			IFixture fixture,
			TestSchedulers scheduler,
			int[] expectedValue)
		{
			//arrange
			var notifications = scheduler.CreateColdObservable(OnNext(200, 1));
			var observer = scheduler.CreateObserver<ObservableViewModelNotification>();
			var sut = new UpdatableObservableViewModelBuilderOptions<int, int[], int>(
				_ => { },
				ct => Task.FromResult(expectedValue),
				() => notifications,
				scheduler,
				scheduler,
				scheduler)
				.UpdateAction((i, o) => () => { })
				.RefreshOnCollectionUpdateNotification()
				.ToViewModel();
			sut.Subscribe(observer);

			//act
			scheduler.Start();

			//assert
			var expected = new ObservableViewModelNotification()
			{
				Status = ObservableViewModelStatus.Value,
				Value = expectedValue
			};
			observer.Values().Last().Value.As<ObservableCollection<int>>().ShouldAllBeEquivalentTo(expectedValue);
		}
Esempio n. 2
0
		public async Task OnNext_WhenSubscribingThenPushingFirstValue_AndFirstValueIsDefaultValue_ShouldReturnCorrectValue(
			TestSchedulers schedulers)
		{
			//arrange
			var observer = schedulers.CreateObserver<int>();
			var sut = new ObservableProperty<int>(schedulers);
			var expected = sut.Value;
			sut.Subscribe(observer);
			
			//act
			sut.OnNext(expected);

			//assert
			observer.Values().Last().Should().Be(expected);
		}
Esempio n. 3
0
		public async Task ViewModel_WhenError_WithRefreshOnCollectionUpdateNotification_ShouldRefresh(
			IFixture fixture,
			TestSchedulers scheduler,
			int[] expectedValue)
		{
			//arrange
			var notifications = scheduler.CreateColdObservable(OnNext(200, 1));
			var observer = scheduler.CreateObserver<ObservableViewModelNotification>();
			var count = 0;
			var sut = new UpdatableObservableViewModelBuilderOptions<int, int[], int>(
				_ => { },
				async ct =>
				{
					if (++count == 1)
						throw new Exception();
					else
						return expectedValue;
				},
				() => notifications,
				scheduler,
				scheduler,
				scheduler)
				.UpdateAction((i, o) => () => { })
				.RefreshOnCollectionUpdateNotification()
				.ToViewModel();
			sut.Subscribe(observer);

			//act
			await sut.RefreshAsync();
			scheduler.AdvanceBy(300);

			//assert
			observer.Values().Last().Value.As<ObservableCollection<int>>().ShouldAllBeEquivalentTo(expectedValue);
		}
		public void CanExecuteChanged_WhenObservableYieldValue_ShouldYieldValue(
			[Frozen]Subject<bool> canExecuteObservable,
			[Frozen]Mock<ICanExecuteStrategy<object>> inner,
			ObserveCanExecuteStrategy<object> sut,
			TestSchedulers schedulers,
			object arg)
		{
			//arrange
			var observer = schedulers.CreateObserver<Unit>();
			sut.CanExecuteChanged.Subscribe(observer);
			

			//act
			canExecuteObservable.OnNext(true);

			//assert
			observer.Values().Should().HaveCount(1);
		}