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); }
/// <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; }