public static async Task Main(string[] args) { string pokemonName; if (args.Any()) { pokemonName = args.First(); } else { Console.WriteLine("Enter pokemon name:"); pokemonName = Console.ReadLine(); } try { PokeApiPokemonTypeRepository pokeApiPokemonTypeRepository = new PokeApiPokemonTypeRepository(); PokemonTypeSearcher pokemonTypeSearcher = new PokemonTypeSearcher(pokeApiPokemonTypeRepository); GetPokemonTypes getPokemonType = new GetPokemonTypes(pokemonTypeSearcher); PokemonTypes pokemonTypes = await getPokemonType.Execute(pokemonName); Console.WriteLine(PokemonTypeToStringConverter.Execute(pokemonTypes)); } catch (PokemonNotFoundException ex) { Console.WriteLine(ex.Message); } catch (Exception ex) { Console.WriteLine(ex.Message); } }
public async Task Search_NotFound_ReturnsNull() { #region Arrange PokeApiPokemonTypeRepository pokemonTypeRepository = new PokeApiPokemonTypeRepository(); PokemonName pokemonName = new PokemonName() { Name = PokemonNameMother.Random() }; #endregion #region Act PokemonTypes pokemonTypes = await pokemonTypeRepository.Search(pokemonName); #endregion #region Assert Assert.Null(pokemonTypes); #endregion }
public async Task Search_Found_ReturnsTypes() { #region Arrange PokeApiPokemonTypeRepository pokemonTypeRepository = new PokeApiPokemonTypeRepository(); PokemonName pokemonName = new PokemonName() { Name = PokemonNameMother.Name() }; #endregion #region Act PokemonTypes pokemonTypes = await pokemonTypeRepository.Search(pokemonName); #endregion #region Assert var typesArray = pokemonTypes.Types.Select(s => s.PokemonTypeName.Name).ToArray(); Assert.Equal(typesArray, PokemonTypesMother.PokemonTypes().Types.Select(s => s.PokemonTypeName.Name).ToArray(), StringComparer.InvariantCultureIgnoreCase); #endregion }