public async Task GetTranslatedPokemonData_GetsYodaTranslation_IfHabitatIsCave() { // Arrange Fixture fixture = new Fixture(); string pokemonName = fixture.Create <string>(); TranslationResponse translation = fixture.Create <TranslationResponse>(); PokemonSpeciesData speciesData = fixture.Create <PokemonSpeciesData>(); PokemonData data = fixture.Create <PokemonData>(); data.Habitat = "cave"; data.Description = pokemonName; this.mockPokemonDataRepository.Setup(x => x.GetPokemonData(pokemonName)) .ReturnsAsync(speciesData); this.mockPokemonDataParser.Setup(x => x.BuildPokemonData(speciesData)) .Returns(data); this.mockPokemonDataRepository.Setup(x => x.GetTranslation(data.Description, "yoda")) .ReturnsAsync(translation); // Act PokemonData response = await this.pokemonDataService.GetTranslatedPokemonData(pokemonName); // Assert this.mockPokemonDataRepository.Verify(x => x.GetTranslation(pokemonName, "yoda"), Times.Once()); response.Description.Should().BeEquivalentTo(translation.Contents.Translated); }
/// <inheritdoc/> public async Task <PokemonData> GetPokemonData(string pokemonName) { //TODO : validate pokemonName exists by cross checking against data obtained from //https://pokeapi.co/api/v2/pokemon?limit=10000 (arbitrary upper limit of known pokemon, currently 1118) PokemonSpeciesData response = await this.pokemonDataRepository.GetPokemonData(pokemonName); return(this.pokemonDataParser.BuildPokemonData(response)); }
/// <inheritdoc/> public PokemonData BuildPokemonData(PokemonSpeciesData pokemonSpeciesData) { return(new PokemonData() { Name = pokemonSpeciesData.Name, Habitat = pokemonSpeciesData.Habitat.Name, Description = pokemonSpeciesData.Description.FirstOrDefault(x => x.DescriptionLanguage.Language == "en").FlavorText, IsLegendary = pokemonSpeciesData.IsLegendary }); }
public static void Load() { SceneArea.TryLoadRegistry(); Gym.TryLoadRegistry(); Weather.CreateWeathers(); PokemonSpeciesData.LoadData(); PokemonMoveData.LoadData(); Nature.LoadRegistry(); SpriteStorage.TryLoadAll(); WildPokemonAreaData.LoadData(); TrainersData.LoadData(); Item.TrySetRegistry(); //TMs must be loaded after moves GenericNPCData.LoadData(); //Generic NPCs must be loaded after items DroppedItem.TryLoadRegistry(); //Dropped items must be loaded after items PokeMartData.LoadData(); //This must be loaded after all items }
/// <inheritdoc/> public async Task <PokemonData> GetTranslatedPokemonData(string pokemonName) { //TODO : validate pokemonName exists by cross checking against data obtained from //https://pokeapi.co/api/v2/pokemon?limit=10000 (arbitrary upper limit of known pokemon, currently 1118) PokemonSpeciesData response = await this.pokemonDataRepository.GetPokemonData(pokemonName); PokemonData data = this.pokemonDataParser.BuildPokemonData(response); if (data.Habitat == "cave" || data.IsLegendary) { try { TranslationResponse translation = await this.pokemonDataRepository.GetTranslation(data.Description, "yoda"); data.Description = translation.Contents.Translated; } catch (Exception) { //TODO : Add logging } } else { try { TranslationResponse translation = await this.pokemonDataRepository.GetTranslation(data.Description, "shakespeare"); data.Description = translation.Contents.Translated; } catch (Exception) { //TODO : Add logging } } return(data); }
public async Task GetTranslatedPokemonData_ReturnsData_IfGetTranslationThrowsException() { // Arrange Fixture fixture = new Fixture(); string pokemonName = fixture.Create <string>(); PokemonSpeciesData speciesData = fixture.Create <PokemonSpeciesData>(); PokemonData data = fixture.Create <PokemonData>(); data.Habitat = "cave"; this.mockPokemonDataRepository.Setup(x => x.GetPokemonData(pokemonName)) .ReturnsAsync(speciesData); this.mockPokemonDataParser.Setup(x => x.BuildPokemonData(speciesData)) .Returns(data); this.mockPokemonDataRepository.Setup(x => x.GetTranslation(data.Description, "yoda")) .Throws(new Exception()); // Act PokemonData response = await this.pokemonDataService.GetTranslatedPokemonData(pokemonName); // Assert response.Should().BeEquivalentTo(data); }