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); }
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); }