public async Task GetBird_ReturnsOkObjectResult_WithABirdObject() { // Arrange var mockRepo = new Mock <IBirdRepository>(); mockRepo.Setup(repo => repo.GetBirdAsync(It.IsAny <int>())) .ReturnsAsync(GetTestBird()); var controller = new BirdsController(_mapper, _cache, _logger.Object, mockRepo.Object); // Act var result = await controller.GetBirdAsync(It.IsAny <int>()); // Assert var okResult = Assert.IsType <OkObjectResult>(result); }
public async Task GetBird_ReturnsBadRequestResult_WhenExceptionIsRaised() { // Arrange var mockRepo = new Mock <IBirdRepository>(); mockRepo.Setup(repo => repo.GetBirdAsync(It.IsAny <int>())) .ThrowsAsync(new InvalidOperationException()); var controller = new BirdsController(_mapper, _cache, _logger.Object, mockRepo.Object); // Act var result = await controller.GetBirdAsync(It.IsAny <int>()); // Assert Assert.IsType <ObjectResult>(result); var objectResult = result as ObjectResult; Assert.Equal(StatusCodes.Status500InternalServerError, objectResult.StatusCode); Assert.Equal("an unexpected error occurred", objectResult.Value); }
public async Task GetBird_ReturnsNotFoundResult_WhenRepositoryReturnsNull() { // Arrange var mockRepo = new Mock <IBirdRepository>(); mockRepo.Setup(repo => repo.GetBirdAsync(It.IsAny <int>())) .Returns(Task.FromResult <Bird>(null)); var controller = new BirdsController(_mapper, _cache, _logger.Object, mockRepo.Object); // Act var result = await controller.GetBirdAsync(It.IsAny <int>()); // Assert Assert.IsType <ObjectResult>(result); var objectResult = result as ObjectResult; Assert.Equal(StatusCodes.Status500InternalServerError, objectResult.StatusCode); Assert.Equal($"bird repository returned null", objectResult.Value); }
public async Task GetBird_ReturnsOkObjectResult_WithBirdDetailViewModel() { // Arrange var birdId = 1; var mockRepo = new Mock <IBirdRepository>(); mockRepo.Setup(repo => repo.GetBirdAsync(birdId)) .ReturnsAsync(GetTestBird()); var controller = new BirdsController(_mapper, _cache, _logger.Object, mockRepo.Object); // Act var result = await controller.GetBirdAsync(birdId); // Assert var objectResult = result as ObjectResult; Assert.NotNull(objectResult); Assert.True(objectResult is OkObjectResult); Assert.Equal(StatusCodes.Status200OK, objectResult.StatusCode); var model = Assert.IsType <BirdDetailDto>(objectResult.Value); Assert.Equal(birdId, model.BirdId); }