Example #1
0
        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);
        }
Example #2
0
        /// <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));
        }
Example #3
0
 /// <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
     });
 }
Example #4
0
        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
        }
Example #5
0
        /// <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);
        }
Example #6
0
        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);
        }