From a3af130c92fde9c822c48529d20ad66727360f7f Mon Sep 17 00:00:00 2001 From: StevanFreeborn Date: Thu, 30 Jun 2022 22:05:20 -0500 Subject: [PATCH] add unit test for repo throwing exception to characters controller tests --- .../controllers/CharactersControllerTests.cs | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/server.tests/controllers/CharactersControllerTests.cs b/server.tests/controllers/CharactersControllerTests.cs index a2b4a44..cf3780c 100644 --- a/server.tests/controllers/CharactersControllerTests.cs +++ b/server.tests/controllers/CharactersControllerTests.cs @@ -3,6 +3,7 @@ using Moq; using server.Controllers.v1; using server.Models; using server.Persistence.Repositories; +using System.ComponentModel.DataAnnotations; using System.Net; namespace tests.controllers @@ -74,5 +75,23 @@ namespace tests.controllers Assert.Equal(HttpStatusCode.OK, (HttpStatusCode)result.StatusCode); Assert.Single(data); } + + [Fact] + public async Task GetCharactersAsync_RepoThrowsException_Returns500StatusWithProblemDetail() + { + var filter = new CharacterFilter(); + + _mockRepo + .Setup(repo => repo.GetCharactersAsync(filter)) + .Throws(new Exception()); + + var result = await _controller.GetCharactersAsync(filter) as ObjectResult; + var data = result.Value; + + _mockRepo.Verify(repo => repo.GetCharactersAsync(It.IsAny()), Times.Once()); + Assert.IsType(result); + Assert.IsType(data); + Assert.Equal(HttpStatusCode.InternalServerError, (HttpStatusCode)result.StatusCode); + } } }