public async Task GetTranslated_BothServicesAndMapperReturnNonNull_ReturnsMappedDto() { Pokemon pokemon = GetNewPokemon(); var translatedPokemonDto = new TranslatedPokemonDto() { Name = "name", Description = "translated description", TranslationType = "Shakespeare", Habitat = "habitat", IsLegendary = true }; _mockPokemonService.Setup(ps => ps.GetPokemon(It.IsAny <string>())).ReturnsAsync(pokemon); var translatedPokemon = new Pokemon( pokemon.Name, new TranslatedText("translated description", TranslationType.Shakespeare), pokemon.Habitat, pokemon.IsLegendary); _mockTranslationService.Setup(ts => ts.TranslateDescription(pokemon)) .ReturnsAsync(translatedPokemon); _mockTranslatedPokemonMapper.Setup(pm => pm.Map(translatedPokemon)).Returns(translatedPokemonDto); var getResult = await _controller.GetTranslated("name"); var okObjectResult = (OkObjectResult)getResult.Result; Assert.AreEqual(translatedPokemonDto, okObjectResult.Value); }
public async Task <ActionResult <PokemonDto> > GetTranslated([FromRoute] string name) { Pokemon pokemon = await _pokemonService.GetPokemon(name); if (pokemon == null) { return(NotFound()); } pokemon = await _translationService.TranslateDescription(pokemon); TranslatedPokemonDto pokemonDto = _translatedPokemonMapper.Map(pokemon); return(Ok(pokemonDto)); }