示例#1
0
        public async Task GetItemsFromCart_WhenCalled_WithNoItems_ShouldEventually_ReturnServiceError()
        {
            var expected = Some(PagedResult <CartItem> .CreateEmptyResult());

            var repositoryMock = new Mock <IRepository <CartItem> >();

            repositoryMock.Setup(mock => mock.GetAll(It.IsAny <int>(), It.IsAny <int>()))
            .Returns(expected);
            var sut = _fixture.Initialize(repositoryMock.Object);

            var currPage = 0;
            var pageSize = 40;

            await match(sut.GetItemsFromCart(currPage, pageSize),
                        Right : r => Assert.Equal(expected, r),
                        Left : _ => Assert.False(true, "Should't get here!")
                        );

            repositoryMock.Verify(
                mock => mock.GetAll(
                    It.Is <int>(num => num == currPage),
                    It.Is <int>(num => num == pageSize)),
                Times.Once()
                );
        }
 public EitherAsync <Exception, Option <PagedResult <CartItem> > > GetAll(
     int pageNumber = 0, int pageSize = 200
     ) =>
 match(_dbClient.GetDocumentsAsync(pageNumber, pageSize),
       Some: items => {
     var totalCount = items.Count();
     var totalPages = (long)Math.Ceiling((double)(totalCount / pageSize));
     var collection = new PagedResult <CartItem>(items, totalCount, totalPages, pageNumber + 1);
     return(Right <Exception, Option <PagedResult <CartItem> > >(Some(collection)));
 },
       None: () => Right <Exception, Option <PagedResult <CartItem> > >(Some(PagedResult <CartItem> .CreateEmptyResult())),
       Fail: ex => Left <Exception, Option <PagedResult <CartItem> > >(ex)
       ).ToAsync();
示例#3
0
 public EitherAsync <ServiceError, PagedResult <CartItem> > GetItemsFromCart(
     int currentPage = 0, int pageSize = 40
     ) =>
 match(Repository.GetAll(currentPage, pageSize),
       Right: option => match(option,
                              Some: items => Right <ServiceError, PagedResult <CartItem> >(items),
                              None: () => Right <ServiceError, PagedResult <CartItem> >(PagedResult <CartItem> .CreateEmptyResult())),
       Left: ex => Left <ServiceError, PagedResult <CartItem> >(new ServiceError(ex.Message, ServiceErrorCode.UnknownException))
       ).ToAsync();