public async Task GivenOKResult_WhenResourceRequested_ThenProviderShouldReturnOKResultWithSpeciesContent()
        {
            // Arrange
            var speciesName = "Species 2";

            PokeApiNet.PokemonSpecies testPokemonSpecies = new PokeApiNet.PokemonSpecies()
            {
                Id                = 2,
                Name              = speciesName,
                Order             = 1,
                FlavorTextEntries = new List <PokeApiNet.PokemonSpeciesFlavorTexts>()
                {
                    new PokeApiNet.PokemonSpeciesFlavorTexts()
                    {
                        FlavorText = "Flavor text 1",
                        Language   = new PokeApiNet.NamedApiResource <PokeApiNet.Language>()
                        {
                            Name = "en",
                            Url  = "url"
                        }
                    },
                    new PokeApiNet.PokemonSpeciesFlavorTexts()
                    {
                        FlavorText = "Flavor text 2",
                        Language   = new PokeApiNet.NamedApiResource <PokeApiNet.Language>()
                        {
                            Name = "en",
                            Url  = "url"
                        }
                    },
                    new PokeApiNet.PokemonSpeciesFlavorTexts()
                    {
                        FlavorText = "Flavor text 3",
                        Language   = new PokeApiNet.NamedApiResource <PokeApiNet.Language>()
                        {
                            Name = "fr",
                            Url  = "url"
                        }
                    }
                }
            };

            var speciesRequest = new PokeApiNet.NamedApiResource <PokeApiNet.PokemonSpecies>()
            {
                Name = "test species", Url = "test url"
            };

            _mockPokeApiClient.Setup(p => p.GetResourceAsync(It.IsAny <PokeApiNet.UrlNavigation <PokeApiNet.PokemonSpecies> >())).ReturnsAsync(testPokemonSpecies);
            var pokemonProvider = new PokemonProvider(_mockLoggerFactory, _mockPokeApiClient.Object);

            // Act
            var speciesResult = await pokemonProvider.GetPokemonSpecies(speciesRequest);

            // Assert
            speciesResult.Should().BeOfType(typeof(ServiceResult <PokeApiNet.PokemonSpecies>));
            speciesResult.Content.Should().NotBeNull();
            speciesResult.Content.Name.Should().Be(speciesName);
            speciesResult.Content.FlavorTextEntries.Count.Should().Be(3);
        }
Esempio n. 2
0
 /// <summary>
 /// Create a Pokemon Dto object.
 /// </summary>
 /// <param name="fromMon">Pokemon object is based on</param>
 public PokemonDto(PokeApiNet.Pokemon fromMon, PokeApiNet.PokemonSpecies fromSpecies)
 {
     Name       = fromMon.Name.Contains("-mega") ? "Mega " : "";
     Name      += fromSpecies.Names.Where(name => name.Language.Name == "en").FirstOrDefault().Name;
     Generation = Int32.Parse(new Uri(fromSpecies.Generation.Url).Segments.Last().TrimEnd('/'));
     PictureURL = fromMon.Sprites.FrontDefault;
     Types      = fromMon.Types.Select(type => type.Type.Name).ToList();
     Id         = fromMon.Id;
 }