public async Task AddArticleAsync__Already_there_is_the_same_element_in_database__Should_return_400BadRequest_response() { var ArticleDto = CreateArticleDto(_articles[0]); _mapperMock.Setup(x => x.Map <Article>(ArticleDto)).Returns(_articles[0]); _articleDbServiceMock.Setup(x => x.AddAsync(It.IsNotNull <Article>())).ThrowsAsync(new InvalidOperationException()); _articleDbServiceMock.Setup(x => x.RestrictedAddAsync(It.IsNotNull <Article>())).ThrowsAsync(new InvalidOperationException()); var controller = new ArticlesController(_articleDbServiceMock.Object, _logger, _mapperMock.Object); var result = await controller.AddArticleAsync(ArticleDto); (result as ObjectResult).StatusCode.Should().Be(400); ((result as ObjectResult).Value as ResponseWrapper).Error.Should().NotBeNull(); }
public async Task AddArticleAsync__An_internal_error_reffered_to_the_database_occurred__Should_throw_InternalDbServiceException() { // Example of these errors: database does not exist, table does not exist etc. _articleDbServiceMock.Setup(x => x.AddAsync(It.IsAny <Article>())).ThrowsAsync(new InternalDbServiceException()); _articleDbServiceMock.Setup(x => x.RestrictedAddAsync(It.IsAny <Article>())).ThrowsAsync(new InternalDbServiceException()); var controller = new ArticlesController(_articleDbServiceMock.Object, _logger, _mapperMock.Object); var article = new ArticleDto { Id = "1" }; Func <Task> result = async() => await controller.AddArticleAsync(article); await result.Should().ThrowExactlyAsync <InternalDbServiceException>(); }
public async Task AddArticleAsync__Add_succeeded__Should_return_200OK_response_with_added_element() { var validArticle = new Article { Id = "12312321321321", Title = "Valid title" }; var validArticleDto = CreateArticleDto(validArticle); _mapperMock.Setup(x => x.Map <Article>(It.IsNotNull <ArticleDto>())).Returns(validArticle); _mapperMock.Setup(x => x.Map <ArticleDto>(It.IsNotNull <Article>())).Returns(validArticleDto); _articleDbServiceMock.Setup(x => x.AddAsync(validArticle)).ReturnsAsync(validArticle); _articleDbServiceMock.Setup(x => x.RestrictedAddAsync(validArticle)).ReturnsAsync(validArticle); var controller = new ArticlesController(_articleDbServiceMock.Object, _logger, _mapperMock.Object); var result = await controller.AddArticleAsync(validArticleDto); (result as ObjectResult).StatusCode.Should().Be(201); ((result as ObjectResult).Value as ResponseWrapper).Error.Should().BeEquivalentTo(new ApiError()); }