예제 #1
0
        public async Task <BooksBorrowedByUserResponseDto> BooksBorrowedByUserAsync(string userId)
        {
            var result = await _bookLendingRepository.ListAsync(c => c.AppUser.Id == userId, order => order.OrderBy(c => c.BorrowDate), IncludeProperties);

            if (result == null || !result.Any())
            {
                return(null);
            }
            var booksBorrowing = new BooksBorrowedByUserResponseDto
            {
                Books = MapToResponse(result),
                User  = MapToResponse(result.Select(c => c.AppUser).FirstOrDefault())
            };

            return(booksBorrowing);
        }
예제 #2
0
        public async Task GetBorrowedBook_ByUser_Success()
        {
            // Arrange
            var userId = "1";
            var booksBorrowedByUserResponseDtos = new BooksBorrowedByUserResponseDto()
            {
                User = new Users.Model.UserResponseDto
                {
                    Id       = userId,
                    Email    = "*****@*****.**",
                    FullName = "Test User",
                    UserName = "******"
                },
                Books = new List <BookLendingResponseDto> {
                    new BookLendingResponseDto
                    {
                        Id            = 1,
                        Name          = "Book 1",
                        PublishedDate = new DateTime(2019, 1, 1)
                    },
                    new BookLendingResponseDto
                    {
                        Id            = 2,
                        Name          = "Book 2",
                        PublishedDate = new DateTime(2018, 1, 1)
                    }
                }
            };

            _bookLendingServiceMock.Setup(c => c.BooksBorrowedByUserAsync(userId)).ReturnsAsync(booksBorrowedByUserResponseDtos);
            _bookLendingApiController = new BookLendingApiController(_bookLendingServiceMock.Object, _bookServiceMock.Object);
            // Act
            var result = await _bookLendingApiController.Get(userId);

            // Assert
            var resultValue  = ((Microsoft.AspNetCore.Mvc.ObjectResult)result).Value;
            var resultStatus = ((Microsoft.AspNetCore.Mvc.ObjectResult)result).StatusCode;

            Assert.Equal((int)HttpStatusCode.OK, resultStatus);
            Assert.Equal(booksBorrowedByUserResponseDtos, resultValue);
        }