public async Task Create_AddPokemonToDb_InsertsPokemon() { var pokemon = new Pokemon() { Id = Guid.Parse("47b176a6-535f-447b-9f09-86465f07967a"), Name = "Evegenij", Avatar = "Evgavatar", Generation = 2, Height = 100, Weight = 100, Abilities = new List <PokemonAbility>() { new PokemonAbility() { Ability = new Ability() { Name = "Leaf strike" } } } }; // arrange var repository = new Mock <IRepository <Pokemon> >(); repository.Setup(x => x.Insert( It.IsAny <Pokemon>(), CancellationToken.None )).ReturnsAsync(pokemon.Id); var mapper = TestHelper.GetMapper(); var logger = new NullLogger <PokemonService>(); var loggerValidator = new Mock <ILogger <PokemonValidator> >(); var validator = new PokemonValidator(loggerValidator.Object); var service = new PokemonService(mapper: mapper, validator: validator, repository: repository.Object, logger: logger); // act var pokemonDTO = mapper.Map <PokemonDTO>(pokemon); var result = (await service.Create(pokemonDTO, CancellationToken.None)); // assert repository.Verify(x => x.Insert( It.IsAny <Pokemon>(), CancellationToken.None) , Times.Once); repository.VerifyNoOtherCalls(); }
public ActionResult Post([FromBody] Pokemon pokemon) { var validator = new PokemonValidator(); var result = validator.Validate(pokemon); if (ModelState.IsValid) { pokemonRepository.Add(pokemon); return(Ok()); } return(BadRequest(result.Errors)); }
public async Task IsGeneration_ValueLessThan8AndMoreThan1_ValidationException() { // ARRANGE var pokemon = new PokemonDTO() { Id = Guid.Parse("8372c3f3-8281-4c21-8d0f-8830817bc2fb"), Name = "Georigus", Avatar = "Edipus", Generation = 10, Height = 100, Weight = 100, Type = PokemonType.Fire }; // ACT var loggerValidator = new Mock <ILogger <PokemonValidator> >(); var validator = new PokemonValidator(loggerValidator.Object); // ASSERT Assert.Throws <ValidationException>(() => validator.IsValid(pokemon)); }
private bool CheckPokemon(IPokemonData pokemon) { return(PokemonValidator.Validate(pokemon)); //TODO: more }
public Microsoft.AspNetCore.Mvc.ActionResult <dynamic> InsertPokemon(Pokemons newPokemon) { BindingList <string> errors = new BindingList <string>(); PokemonValidator validator = new PokemonValidator(); ValidationResult results = validator.Validate(newPokemon); //valida o pokemon que tá chegando if (results.IsValid == false) { foreach (ValidationFailure failure in results.Errors) { errors.Add($"{failure.PropertyName}: {failure.ErrorMessage}"); } return(errors); } using (IDbConnection conn = Connection) { conn.Open(); Guid pokeguid = Guid.NewGuid(); int rowsAffected = conn.QueryFirst <int>(@"INSERT INTO pokemons( id, name, hp, attack, defense, special_attack, special_defense, speed, generation) VALUES( @pokemonguid, @name, @hp, @attack, @defense, @special_attack, @special_defense, @speed, @generation)", new { pokemonguid = pokeguid, name = newPokemon.name, hp = newPokemon.hp, attack = newPokemon.attack, defense = newPokemon.defense, special_attack = newPokemon.special_attack, special_defense = newPokemon.special_defense, speed = newPokemon.speed, generation = newPokemon.generation }); if (newPokemon.types != null && newPokemon.types.Count > 0) { foreach (var types in newPokemon.types) { int rowsAffectedAddresses = conn.QueryFirst <int>(@"INSERT INTO pokemon_types( id, pokemon_id, type_id) VALUES (@guidtipo, @pokemonguid, @guidtipotabela);", new { guidtipo = Guid.NewGuid(), pokemonguid = pokeguid, guidtipotabela = Guid.NewGuid() //não vou conseguir mostrar os tipos por tempo e não entender direito como ir na outra tabela...Sorry }); } } if (rowsAffected > 0) { return(true); } } return(false); }