private static void BuildPokemonApiServiceMock( Mock <IShakespeareApiService> shakespeareApiServiceMock, ShakespeareApiResult expectedModel) { shakespeareApiServiceMock .Setup(service => service.Translate(It.IsAny <string>())) .ReturnsAsync(() => expectedModel); }
public async Task Test_WhenPokemonNameIsValid_ExpectTranslatedPokemon( Mock <IPokemonApiService> pokemonApiServiceMock, Mock <IShakespeareApiService> shakespeareApiServiceMock, Mock <ILogger <PokemonController> > logMock, string pokemonName, ShakespeareApiResult expectedApiResult, ShakespeareResult expectedResult) { // Arrange BuildPokemonApiServiceMock(shakespeareApiServiceMock, expectedApiResult); var pokemonController = new PokemonController(pokemonApiServiceMock.Object, shakespeareApiServiceMock.Object, logMock.Object); // Act var actionResult = await pokemonController.Get(pokemonName, CancellationToken.None); // Assert if (actionResult.Value != null) { var objectResult = Assert.IsType <OkObjectResult>(actionResult.Result); var translated = Assert.IsType <ShakespeareResult>(objectResult.Value); Assert.Equal(expectedResult, translated, new TranslateResultComparer()); } }