public void AddWrongBook()
        {
            Action <int> assertAction = bookId => {
                var book = CreateValidBook();
                book.Id = bookId;
                Controller.ModelState.Clear();
                Controller.Validate(book);
                Assert.ThrowsException <AssertFailedException>(() => Controller.CreateBook(book).GetMessage().AssertStatusCode());
            };

            assertAction(-1);
            assertAction(0);
            assertAction(1);
        }
Esempio n. 2
0
        public void PostTest_CreatesBook()
        {
            // Arrange
            var book = new Book
            {
                Id          = 130,
                Title       = "A Title",
                Author      = "An Author",
                Description = "A Description",
                CoverImage  = "https://www.animage.com",
                Price       = 101.01
            };

            // Act
            var result = _booksController.CreateBook(book).Result.Result as OkObjectResult;

            // Assert
            Assert.Equal(200, result.StatusCode);
            Assert.Equal(book, result.Value);
        }
        public void Add_InvalidObjectPassed_ReturnsBadRequest()
        {
            // Arrange
            var authorMissingItem = new Book()
            {
                title = "ToTest",
                price = 12
            };

            _controller.ModelState.AddModelError("Author", "Required");
            // Act
            var badResponse = _controller.CreateBook(authorMissingItem);

            // Assert
            Assert.IsNotType <CreatedResult>(badResponse);
        }
        public async Task CreateBook_WhenInputIsNull_ReturnsBadRequest()
        {
            // Arrange
            var httpContext = new DefaultHttpContext();

            _httpContextAccessorMock.Setup(_ => _.HttpContext).Returns(httpContext);

            var controller = new BooksController(_bookRepositoryMock.Object, _mapperMock.Object, _httpContextAccessorMock.Object);

            BookCreateDTO bookDTO = null;

            // Act
            var response = await controller.CreateBook(bookDTO);

            // Assert
            Assert.IsType <BadRequestObjectResult>(response.Result);
        }
        public void AddBook_ValidInput_ReturnsTheValidBook()
        {
            // Arrange
            var book = new Book {
                Id = 14, Author = "Abraham", Rating = 1, Name = "Test2", Description = "some desc", Edition = "5"
            };

            _mockRepository.Setup(x => x.AddBook(book)).Returns(book);

            // Act
            var actionResult  = _controller.CreateBook(book);
            var contentResult = actionResult as OkNegotiatedContentResult <Book>;

            // Assert
            Assert.IsNotNull(contentResult);
            Assert.IsNotNull(contentResult.Content);
        }
        public async Task GivenValidBookCreation_WhenServiceCreateBook_ThenReturnCreatedRecord()
        {
            // arrange
            var bookCreate = new CreateBookDto
            {
                Title    = "Test book",
                Author   = "John Doe",
                Category = "Fantasy"
            };

            // act
            var result = await _controller.CreateBook(bookCreate);

            // assert
            result.ShouldNotBeNull();
            result.BookId.ShouldBe(1);
            result.Author.ShouldNotBeNull();
            result.Author.ShouldBe(bookCreate.Author);
            result.Title.ShouldNotBeNull();
            result.Title.ShouldBe(bookCreate.Title);
            result.Category.ShouldNotBeNull();
            result.Category.ShouldBe(bookCreate.Category);
            _mockService.Verify(x => x.CreateBook(It.IsAny <CreateBookDto>()), Times.Once());
        }