/// <summary>Returns a Pokemon.</summary>
        /// <param name="name">The Pokemon name.</param>
        public async Task <Pokemon> GetPokemon(string name)
        {
            var query = pokemonQuery(name);

            using var client = new GraphQLClient(this.graphqlPokemonUrl);
            var pokemon = await client.Get <Pokemon>(query);

            return(pokemon);
        }
Esempio n. 2
0
        public async Task TestJTokenResult()
        {
            var query = new Query <Pokemon>("pokemon")
                        .AddArguments(new { name = "pikachu" })
                        .AddField(p => p.Name);

            using var client = new GraphQLClient(URL);

            JToken jToken = await client.Get <JToken>(query);

            Assert.Equal(jToken.Count(), 1);
            Assert.Equal(jToken["name"], "Pikachu");
        }
Esempio n. 3
0
        public async Task TestGetList()
        {
            var query = new Query <Pokemon>("pokemons")
                        .AddArguments(new { first = 10 })
                        .AddField(p => p.Name);

            using var client = new GraphQLClient(URL);

            IEnumerable <Pokemon> pokemons = await client.Get <IEnumerable <Pokemon> >(query);

            Assert.NotNull(pokemons);
            Assert.Equal(10, pokemons.Count());
            Assert.All(pokemons, pokemon =>
            {
                Assert.NotNull(pokemon);
                Assert.NotEmpty(pokemon.Name);
            });
        }
        /// <summary>Returns all Pokemons</summary>
        public async Task <IEnumerable <Pokemon> > GetAllPokemons()
        {
            var query = new Query <Pokemon>("pokemons")
                        .AddArguments(new { first = 100 })
                        .AddField(p => p.Id)
                        .AddField(p => p.Number)
                        .AddField(p => p.Name)
                        .AddField(p => p.Height, hq => hq
                                  .AddField(h => h.Minimum)
                                  .AddField(h => h.Maximum)
                                  )
                        .AddField(p => p.Weight, wq => wq
                                  .AddField(w => w.Minimum)
                                  .AddField(w => w.Maximum)
                                  )
                        .AddField(p => p.Types);

            using var client = new GraphQLClient(this.graphqlPokemonUrl);
            var pokemons = await client.Get <IEnumerable <Pokemon> >(query);

            return(pokemons);
        }
Esempio n. 5
0
        public async Task TestGet()
        {
            var query = new Query <Pokemon>("pokemon")
                        .AddArguments(new { name = "pikachu" })
                        .AddField(p => p.Id)
                        .AddField(p => p.Number)
                        .AddField(p => p.Name)
                        .AddField(p => p.Height, hq => hq
                                  .AddField(h => h.Minimum)
                                  .AddField(h => h.Maximum)
                                  )
                        .AddField(p => p.Weight, wq => wq
                                  .AddField(w => w.Minimum)
                                  .AddField(w => w.Maximum)
                                  )
                        .AddField(p => p.Types)
                        .AddField(p => p.Attacks, aq => aq
                                  .AddField <Attack>(a => a.Fast, fq => fq
                                                     .AddField(f => f.Name)
                                                     .AddField(f => f.Type)
                                                     .AddField(f => f.Damage)
                                                     )
                                  .AddField <Attack>(a => a.Special, sq => sq
                                                     .AddField(f => f.Name)
                                                     .AddField(f => f.Type)
                                                     .AddField(f => f.Damage)
                                                     )
                                  );

            using var client = new GraphQLClient(URL);

            Pokemon pikachu = await client.Get <Pokemon>(query);

            Assert.NotNull(pikachu);
            Assert.Equal("UG9rZW1vbjowMjU=", pikachu.Id);
            Assert.Equal("025", pikachu.Number);
            Assert.Equal("Pikachu", pikachu.Name);
            Assert.Equal("0.35m", pikachu.Height.Minimum);
            Assert.Equal("0.45m", pikachu.Height.Maximum);
            Assert.Equal("5.25kg", pikachu.Weight.Minimum);
            Assert.Equal("6.75kg", pikachu.Weight.Maximum);
            Assert.Equal(1, pikachu.Types.Count());
            Assert.Equal("Electric", pikachu.Types[0]);
            Assert.Equal(2, pikachu.Attacks.Fast.Count());
            Assert.Equal("Quick Attack", pikachu.Attacks.Fast[0].Name);
            Assert.Equal("Normal", pikachu.Attacks.Fast[0].Type);
            Assert.Equal(10, pikachu.Attacks.Fast[0].Damage);
            Assert.Equal("Thunder Shock", pikachu.Attacks.Fast[1].Name);
            Assert.Equal("Electric", pikachu.Attacks.Fast[1].Type);
            Assert.Equal(5, pikachu.Attacks.Fast[1].Damage);
            Assert.Equal(3, pikachu.Attacks.Special.Count());
            Assert.Equal("Discharge", pikachu.Attacks.Special[0].Name);
            Assert.Equal("Electric", pikachu.Attacks.Special[0].Type);
            Assert.Equal(35, pikachu.Attacks.Special[0].Damage);
            Assert.Equal("Thunder", pikachu.Attacks.Special[1].Name);
            Assert.Equal("Electric", pikachu.Attacks.Special[1].Type);
            Assert.Equal(100, pikachu.Attacks.Special[1].Damage);
            Assert.Equal("Thunderbolt", pikachu.Attacks.Special[2].Name);
            Assert.Equal("Electric", pikachu.Attacks.Special[2].Type);
            Assert.Equal(55, pikachu.Attacks.Special[2].Damage);
        }