public void ReturnsSuccessfulTransitionWhenEverythingWorks() { var state = (DeleteEntityState <ITestModel, IDatabaseTestModel, IThreadSafeTestModel>)CreateState(); var dirtyEntity = new TestModel(-1, SyncStatus.SyncNeeded); api.Delete(Arg.Any <ITestModel>()) .Returns(Observable.Return(Unit.Default)); dataSource.Delete(Arg.Any <long>()) .Returns(Observable.Return(Unit.Default)); var transition = state.Start(dirtyEntity).SingleAsync().Wait(); transition.Result.Should().Be(state.DeletingFinished); }
private IObservable <Unit> delete(TModel entity) => entity == null ? Observable.Throw <Unit>(new ArgumentNullException(nameof(entity))) : limiter.WaitForFreeSlot() .ThenExecute(() => api.Delete(entity));
private IObservable <Unit> delete(TModel entity) => entity == null ? Observable.Throw <Unit>(new ArgumentNullException(nameof(entity))) : api.Delete(entity);