public async Task DeleteIssueAsync_With_An_Exception_Should_Return_StatusCode_500_Test() { // Arrange var expectedIssue = new IssueForDeleteDto { Id = 1, IssueDescription = "Test 1", }; const string expectedLog = "Something went wrong inside DeleteIssueAsync action: Some Error"; const string expectedValue = "Internal server error"; IssueServiceMock .Setup(x => x.DeleteIssueAsync(It.IsAny <IssueForDeleteDto>())) .ThrowsAsync(new Exception("Some Error")); // Act var result = await ControllerUnderTest.DeleteIssueAsync(expectedIssue); // Assert result.Should().BeOfType <ObjectResult>(); LoggerMock.Invocations.Count.Should().Be(1); LoggerMock.Invocations[0].Arguments[2].ToString().Should().Contain(expectedLog); var content = (ObjectResult)result; content.StatusCode.Should().Be(500); content.Value.Should().Be(expectedValue); }
protected IssueServiceUnitTests() { Issues = new[] { new Issue { Id = 1, IssueDescription = "Test 1", DateAdded = DateTimeOffset.Now, }, new Issue { Id = 2, IssueDescription = "Test 2", DateAdded = DateTimeOffset.Now, }, new Issue { Id = 3, IssueDescription = "Test 3", DateAdded = DateTimeOffset.Now, } }; IssueDtos = new[] { new IssueDto { Id = 1, IssueDescription = "Test 1", DateAdded = DateTimeOffset.Now, }, new IssueDto { Id = 2, IssueDescription = "Test 2", DateAdded = DateTimeOffset.Now, }, new IssueDto { Id = 3, IssueDescription = "Test 3", DateAdded = DateTimeOffset.Now, } }; IssueToDeleteDto = new IssueForDeleteDto { Id = 1, IssueDescription = "Test 1 updated", DateCompleted = DateTimeOffset.Now, IsComplete = false, IsDeleted = false }; LoggerMock = LoggerUtils.LoggerMock <IssueService>(); RepositoryWrapperMock = new Mock <IRepositoryWrapper>(); ServiceUnderTest = new IssueService(RepositoryWrapperMock.Object, AutoMapperSingleton.Mapper, LoggerMock.Object); }
public async Task DeleteIssueAsync(IssueForDeleteDto issue) { using var response = await _apiHelper.ApiClient.GetAsync("/api/GetAllIssuesAsync"); if (response.IsSuccessStatusCode) { var result = await response.Content.ReadAsAsync <List <IssueDto> >(); } else { throw new Exception(response.ReasonPhrase); } }
public async Task <bool> DeleteIssueAsync(IssueForDeleteDto issue) { var issueEntity = await EnforceIssueExistenceAsync(issue.Id); issueEntity.DateDeleted = DateTimeOffset.Now; issueEntity.DateModified = DateTimeOffset.Now; ; _repositoryWrapper.Issue.DeleteIssue(issueEntity); try { await _repositoryWrapper.SaveAsync(); return(true); } catch (Exception ex) { _logger.LogError(ex, "Delete Issue: {Id} Failed!", issueEntity.Id); throw new IssueNotDeletedException(issueEntity); } }
public async Task DeleteIssueAsync_With_Valid_Id_Should_return_NoContentResult_on_successful_delete_Test() { // Arrange var expectedIssue = new IssueForDeleteDto() { Id = 1 }; IssueServiceMock .Setup(x => x.DeleteIssueAsync(expectedIssue)) .ReturnsAsync(true); // Act var result = await ControllerUnderTest.DeleteIssueAsync(expectedIssue); // Assert result.Should().BeOfType <NoContentResult>(); }
public async Task <IActionResult> DeleteIssueAsync([FromBody] IssueForDeleteDto issue) { try { if (issue == null) { _logger.LogError("Issue object sent from client is null"); return(BadRequest("Issue object sent from client is null.")); } await _issueService.DeleteIssueAsync(issue); return(NoContent()); } catch (IssueNotFoundException) { return(NotFound()); } catch (Exception ex) { _logger.LogError("Something went wrong inside DeleteIssueAsync action: {Message}", ex.Message); return(StatusCode(500, "Internal server error")); } }
public async Task DeleteIssueAsync_Should_return_NotFoundResult_when_IssueNotFoundException_is_thrown_Test() { // Arrange var expectedIssue = new IssueForDeleteDto() { Id = 1 }; var expectedResult = new Issue { Id = 1, IssueDescription = "Test 1", DateAdded = DateTimeOffset.Now }; IssueServiceMock .Setup(x => x.DeleteIssueAsync(expectedIssue)) .ThrowsAsync(new IssueNotFoundException(expectedResult)); // Act var result = await ControllerUnderTest.DeleteIssueAsync(expectedIssue); // Assert Assert.IsType <NotFoundResult>(result); }