public async Task GetBookForAuthorAsync_Test() { // Arrange var authorId = Guid.Parse("a1da1d8e-1988-4634-b538-a01709477b77"); var bookId = Guid.Parse("1325360c-8253-473a-a20f-55c269c20407"); var mockRepo = new Mock <ILibraryRepository>(); mockRepo.Setup(repo => repo.AuthorExistsAsync(authorId)) .Returns(Task.FromResult(true)); mockRepo.Setup(repo => repo.GetBookForAuthorAsync(authorId, bookId)) .ReturnsAsync( GetTestAuthorsData().FirstOrDefault(a => a.Id == authorId) .Books.FirstOrDefault(b => b.Id == bookId) ); var mapper = new MapperConfiguration(cfg => cfg.AddProfile(new BookProfile())).CreateMapper(); var controller = new BooksController(mockRepo.Object, mapper); // Act var result = await controller.GetBookForAuthorAsync(authorId, bookId); // Assert var actionResult = Assert.IsType <ActionResult <BookDto> >(result); var okResult = Assert.IsType <OkObjectResult>(actionResult.Result); var returnBookDto = Assert.IsType <BookDto>(okResult.Value); Assert.Equal(new Guid("1325360c-8253-473a-a20f-55c269c20407"), returnBookDto.Id); Assert.Equal("Easy Money", returnBookDto.Title); Assert.Equal("Easy Money or Snabba cash is a novel from 2006 by Jens Lapidus.", returnBookDto.Description); }
public async Task GetBookForAuthorAsync_AuthorNotExist_Test() { // Arrange var authorId = Guid.NewGuid(); var bookId = Guid.NewGuid(); var mockRepo = new Mock <ILibraryRepository>(); mockRepo.Setup(repo => repo.AuthorExistsAsync(authorId)) .ReturnsAsync(false); var mapper = new MapperConfiguration(cfg => cfg.AddProfile(new BookProfile())).CreateMapper(); var controller = new BooksController(mockRepo.Object, mapper); // Act var result = await controller.GetBookForAuthorAsync(authorId, bookId); // Assert var actionResult = Assert.IsType <ActionResult <BookDto> >(result); Assert.IsType <NotFoundResult>(actionResult.Result); }