add unit test for repo throwing exception to characters controller tests

This commit is contained in:
StevanFreeborn
2022-06-30 22:05:20 -05:00
parent 4c647a5c9a
commit a3af130c92
@@ -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<CharacterFilter>()), Times.Once());
Assert.IsType<ObjectResult>(result);
Assert.IsType<ProblemDetails>(data);
Assert.Equal(HttpStatusCode.InternalServerError, (HttpStatusCode)result.StatusCode);
}
}
}