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);
            }
예제 #2
0
        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);
        }
예제 #3
0
        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);
            }
        }
예제 #4
0
        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>();
            }
예제 #6
0
        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);
            }