public void ReadRequestPassedThroughTest() { PageReadRequest readRequest = default(PageReadRequest); Func <PageReadRequest, IObservable <PageReadResult <CollectionModel> > > func = (r) => { readRequest = r; return(Observable.Return(default(PageReadResult <CollectionModel>))); }; _pagingController = new ObservablePagingController <CollectionModel>(func); var offset = 10; var take = 10; var read = _pagingController.ReadPage(offset, take); Assert.Equal(offset, readRequest.Offset); Assert.Equal(take, readRequest.Take); }
public void ExceptionPassedAndRetryCorrectlyOccursTest() { var exception = new InvalidOperationException(); var exceptionRaised = default(Exception); var errorRequest = default(PageReadRequest); var raised = false; var result = new PageReadResult <CollectionModel>(1, null, null); Func <PageReadRequest, Exception, IObservable <bool> > exc = (pr, e) => { raised = true; exceptionRaised = e; errorRequest = pr; return(Observable.Return(true)); }; Func <PageReadRequest, IObservable <PageReadResult <CollectionModel> > > func = (r) => this.GetData(r, exception, result); _pagingController = new ObservablePagingController <CollectionModel>(func, exc); var offset = 10; var take = 10; PageReadResult <CollectionModel> readValue = default(PageReadResult <CollectionModel>); var read = _pagingController.ReadPage(offset, take).Subscribe(v => readValue = v); Assert.True(raised); Assert.Same(exception, exceptionRaised); Assert.Equal(offset, errorRequest.Offset); Assert.Equal(take, errorRequest.Take); Assert.Equal(2, _invokeCount); Assert.Same(result, readValue); }
public void RequestsLargerThanMaxSizeAreTrimmedTest() { const int maxPageSize = 5; PageReadRequest readRequest = default(PageReadRequest); Func <PageReadRequest, IObservable <PageReadResult <CollectionModel> > > func = (r) => { readRequest = r; return(Observable.Return(default(PageReadResult <CollectionModel>))); }; _pagingController = new ObservablePagingController <CollectionModel>(func, maxPageSize: maxPageSize); var offset = 10; var take = 10; var read = _pagingController.ReadPage(offset, take); Assert.Equal(offset, readRequest.Offset); Assert.Equal(maxPageSize, readRequest.Take); }
public void ExceptionPassedToExceptionHandlerTest() { var exception = new InvalidOperationException(); var readResult = new Subject <PageReadResult <CollectionModel> >(); readResult.OnError(exception); Func <PageReadRequest, IObservable <PageReadResult <CollectionModel> > > func = (r) => readResult; var exceptionRaised = default(Exception); var errorRequest = default(PageReadRequest); var raised = false; Func <PageReadRequest, Exception, IObservable <bool> > exc = (pr, e) => { raised = true; exceptionRaised = e; errorRequest = pr; return(Observable.Return(false)); }; _pagingController = new ObservablePagingController <CollectionModel>(func, exc); var offset = 10; var take = 10; PageReadResult <CollectionModel> readValue = default(PageReadResult <CollectionModel>); var read = _pagingController.ReadPage(offset, take).Subscribe(v => readValue = v); Assert.True(raised); Assert.Same(exception, exceptionRaised); Assert.Equal(offset, errorRequest.Offset); Assert.Equal(take, errorRequest.Take); }