Example #1
0
        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);
        }
Example #2
0
        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);
        }
Example #3
0
        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);
        }
Example #4
0
        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);
        }