public async Task GivenErrorResult_WhenTranslated_ThenControllerShouldReturnBadRequest() { // Arrange string pokemonName = "Test Pokemon"; Translation translation = Translation.Shakespeare; _mockPokespeareWorker.Setup(pw => pw.TranslatePokemon(It.IsAny <string>(), It.IsAny <Models.Translation>())).ReturnsAsync(new ServiceResult <TranslatedPokemon>(Result.Error, $"No translation for {translation}", null)); var controller = new PokemonController(_mockLoggerFactory, _mockPokespeareWorker.Object); // Act var result = await controller.Index(pokemonName, translation.ToString()); // Assert var value = result.Should().BeBadRequestResult(); }
public async Task GivenInvalidTranslation_WhenTranslated_ThenControllerShouldReturnNoContent() { // Arrange string pokemonName = "Test Pokemon"; string translation = "Invalid"; _mockPokespeareWorker.Setup(pw => pw.TranslatePokemon(It.IsAny <string>(), It.IsAny <Models.Translation>())).ReturnsAsync(new ServiceResult <TranslatedPokemon>(Result.NoTranslation, $"No translation for {translation}", null)); var controller = new PokemonController(_mockLoggerFactory, _mockPokespeareWorker.Object); // Act var result = await controller.Index(pokemonName, translation); // Assert var value = result.Should().BeNoContentResult(); }
public async Task GivenOKTranslationResult_WhenTranslated_ThenControllerShouldReturnOKResultWithContent() { // Arrange string pokemonName = "Test Pokemon"; Translation translation = Translation.Shakespeare; TranslatedPokemon translatedPokemon = new TranslatedPokemon(); _mockPokespeareWorker.Setup(pw => pw.TranslatePokemon(It.IsAny <string>(), It.IsAny <Models.Translation>())).ReturnsAsync(new ServiceResult <TranslatedPokemon>(Result.OK, string.Empty, translatedPokemon)); var controller = new PokemonController(_mockLoggerFactory, _mockPokespeareWorker.Object); // Act var result = await controller.Index(pokemonName, translation.ToString()); // Assert var value = result.Should().BeOkObjectResult().ValueAs <TranslatedPokemon>(); value.Should().Be(translatedPokemon); }