public void PokemonTypeSearcher_ReturnsException()
        {
            #region Arrange
            string      name        = PokemonNameMother.Random();
            PokemonName pokemonName = new PokemonName()
            {
                Name = name
            };
            string expectedMessage       = $"Pokemon '{name}' does not exist";
            var    pokemonTypeRepository = new Mock <PokemonTypeRepository>();

            pokemonTypeRepository
            .Setup(r => r.Search(It.Is <PokemonName>(n => String.Equals(n.Name, name, StringComparison.InvariantCultureIgnoreCase))))
            .ReturnsAsync(null as PokemonTypes);

            var pokemonTypeSearcher = new PokemonTypeSearcher(pokemonTypeRepository.Object);

            #endregion

            #region Act
            var exception = Record.ExceptionAsync(async() => await pokemonTypeSearcher.Execute(pokemonName));

            #endregion

            #region Assert
            Assert.Equal(expectedMessage, exception.Result.Message);

            #endregion
        }
        public async Task PokemonTypeSearcher_ReturnsTypes()
        {
            #region Arrange
            string      name        = PokemonNameMother.Name();
            PokemonName pokemonName = new PokemonName()
            {
                Name = name
            };
            var pokemonTypeRepository = new Mock <PokemonTypeRepository>();

            pokemonTypeRepository
            .Setup(r => r.Search(It.Is <PokemonName>(n => String.Equals(n.Name, name, StringComparison.InvariantCultureIgnoreCase))))
            .ReturnsAsync(PokemonTypesMother.PokemonTypes());

            var pokemonTypeSearcher = new PokemonTypeSearcher(pokemonTypeRepository.Object);

            #endregion

            #region Act
            PokemonTypes pokemonTypes = await pokemonTypeSearcher.Execute(pokemonName);

            #endregion

            #region Assert
            var typesArray = pokemonTypes.Types.Select(s => s.PokemonTypeName.Name).ToArray();
            Assert.Equal(typesArray, PokemonTypesMother.PokemonTypes().Types.Select(s => s.PokemonTypeName.Name).ToArray(), StringComparer.InvariantCultureIgnoreCase);

            #endregion
        }
Ejemplo n.º 3
0
 public static Pokemon Pokemon()
 {
     return(new Pokemon(new PokemonId(PokemonIdMother.Id()),
                        new PokemonName(PokemonNameMother.Name()),
                        new PokemonTypes(new List <PokemonType>()
     {
         new PokemonType("fire"),
         new PokemonType("flying"),
     })));
 }
Ejemplo n.º 4
0
        public async Task Search_NotFound_ReturnsNull()
        {
            #region Arrange

            PokeApiPokemonTypeRepository pokemonTypeRepository = new PokeApiPokemonTypeRepository();
            PokemonName pokemonName = new PokemonName()
            {
                Name = PokemonNameMother.Random()
            };

            #endregion

            #region Act
            PokemonTypes pokemonTypes = await pokemonTypeRepository.Search(pokemonName);

            #endregion

            #region Assert
            Assert.Null(pokemonTypes);

            #endregion
        }
Ejemplo n.º 5
0
        public async Task Search_Found_ReturnsTypes()
        {
            #region Arrange

            PokeApiPokemonTypeRepository pokemonTypeRepository = new PokeApiPokemonTypeRepository();
            PokemonName pokemonName = new PokemonName()
            {
                Name = PokemonNameMother.Name()
            };

            #endregion

            #region Act
            PokemonTypes pokemonTypes = await pokemonTypeRepository.Search(pokemonName);

            #endregion

            #region Assert
            var typesArray = pokemonTypes.Types.Select(s => s.PokemonTypeName.Name).ToArray();
            Assert.Equal(typesArray, PokemonTypesMother.PokemonTypes().Types.Select(s => s.PokemonTypeName.Name).ToArray(), StringComparer.InvariantCultureIgnoreCase);

            #endregion
        }