Exemplo n.º 1
0
 public IObservable <ITransition> Start(IFetchObservables fetch)
 => fetch.GetSingle <TInterface>()
 .SingleAsync()
 .SelectMany(entity => entity == null
             ? Observable.Return(Unit.Default)
             : dataSource.UpdateWithConflictResolution(convertToThreadsafeEntity(entity)).Select(_ => Unit.Default))
 .Select(_ => FinishedPersisting.Transition(fetch));
        public void ThrowsWhenUpdateWithConflictResolutionThrows()
        {
            var entity      = new TestModel();
            var observables = createObservables(entity);

            dataSource.UpdateWithConflictResolution(Arg.Any <IThreadSafeTestModel>()).Returns(
                Observable.Throw <IConflictResolutionResult <IThreadSafeTestModel> >(new TestException()));

            Action startingState = () => state.Start(observables).SingleAsync().Wait();

            startingState.Should().Throw <TestException>();
        }