예제 #1
0
        public async Task BorrowABook_BookExistFailedToBorrow_NoContent()
        {
            // Arrange
            var bookId             = 1;
            var userId             = "2";
            var bookLendingRequest = new BookLendingRequestDto
            {
                BookId = bookId,
                Id     = 1,
                UserId = userId
            };

            var bookInfo = new BookResponseDto
            {
                Id             = bookId,
                Name           = "Book 1",
                PublishedDate  = new DateTime(2015, 10, 1),
                Available2Lend = true
            };

            _bookServiceMock.Setup(c => c.GetByIdAsync(bookLendingRequest.BookId)).ReturnsAsync(bookInfo);
            _bookLendingServiceMock.Setup(c => c.BookLending(bookLendingRequest)).ReturnsAsync((BookLendingResponseDto)null);
            _bookLendingApiController = new BookLendingApiController(_bookLendingServiceMock.Object, _bookServiceMock.Object);
            // Act
            var result = await _bookLendingApiController.Post(bookLendingRequest);

            // Assert
            var resultStatus = ((Microsoft.AspNetCore.Mvc.NoContentResult)result).StatusCode;

            Assert.Equal((int)HttpStatusCode.NoContent, resultStatus);
        }
예제 #2
0
        public async Task GetBorrowedBook_InvalidUser_NoContent()
        {
            // Arrange
            var userId = "-1";

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

            // Assert
            var resultStatus = ((Microsoft.AspNetCore.Mvc.StatusCodeResult)result).StatusCode;

            Assert.Equal((int)HttpStatusCode.NoContent, resultStatus);
        }
예제 #3
0
        public async Task BorrowABook_BookNotExist_BadRequest()
        {
            // Arrange
            var bookLendingRequest = new BookLendingRequestDto
            {
                BookId = 1,
                Id     = 1,
                UserId = "2"
            };

            _bookServiceMock.Setup(c => c.GetByIdAsync(bookLendingRequest.BookId)).ReturnsAsync((BookResponseDto)null);
            _bookLendingApiController = new BookLendingApiController(_bookLendingServiceMock.Object, _bookServiceMock.Object);
            // Act
            var result = await _bookLendingApiController.Post(bookLendingRequest);

            // Assert
            var resultStatus = ((Microsoft.AspNetCore.Mvc.BadRequestResult)result).StatusCode;

            Assert.Equal((int)HttpStatusCode.BadRequest, resultStatus);
        }
예제 #4
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);
        }
예제 #5
0
        public async Task ReturnBook_BookLendingId_NoContent()
        {
            // Arrange
            var returnResult       = false;
            var bookLendingId      = 1;
            var bookLendingRequest = new BookLendingRequestDto
            {
                BookId = 1,
                Id     = bookLendingId,
                UserId = "2"
            };

            _bookLendingServiceMock.Setup(c => c.BookReturning(bookLendingId, bookLendingRequest)).ReturnsAsync(returnResult);
            _bookLendingApiController = new BookLendingApiController(_bookLendingServiceMock.Object, _bookServiceMock.Object);
            // Act
            var result = await _bookLendingApiController.Put(bookLendingId, bookLendingRequest);

            // Assert
            var resultStatus = ((Microsoft.AspNetCore.Mvc.NoContentResult)result).StatusCode;

            Assert.Equal((int)HttpStatusCode.NoContent, resultStatus);
        }