public async Task <IActionResult> PostBook(BookForDetailedDto book) { if (book == null) { return(StatusCode(400)); } var bookToSave = _mapper.Map <Book>(book); if (!await _repo.AuthorExist(bookToSave.AuthorId)) { bookToSave.AuthorId = null; } if (book.Id == 0) { _repo.AddBook(bookToSave); } else { _repo.EditBook(bookToSave); } await _repo.SaveAll(); return(StatusCode(201, book)); }
public async Task PostBook_PassNull_StatusCode400() { //Arrange var config = new MapperConfiguration(cfg => { cfg.AddProfile(new AutoMapperProfiles()); }); var repository = new Mock <ILibraryRepository>(); var mapper = config.CreateMapper(); BookForDetailedDto book = null; var controller = new BooksController(repository.Object, mapper); //Act var result = await controller.PostBook(book); var statusCode = result as StatusCodeResult; //Assert Assert.NotNull(statusCode); Assert.Equal(400, statusCode.StatusCode); }
public async Task PostBook_PassBookForDetailedDtoObject_StatusCode201() { //Arrange var config = new MapperConfiguration(cfg => { cfg.AddProfile(new AutoMapperProfiles()); }); var repository = new Mock <ILibraryRepository>(); var mapper = config.CreateMapper(); BookForDetailedDto book = new BookForDetailedDto() { Id = 1, Title = "Test", Description = "Testing" }; var controller = new BooksController(repository.Object, mapper); //Act var result = await controller.PostBook(book); var objectResult = result as ObjectResult; //Assert Assert.NotNull(objectResult); Assert.Equal(201, objectResult.StatusCode); }