public async Task AlteraEntidade_OK() { var options = OptionsContext(); var id = Guid.NewGuid(); var idRestaurante = Guid.NewGuid(); var idRestaurante2 = Guid.NewGuid(); using (var contexto = new ContextoBdAplicacao(options)) { //Preparar await contexto.AddAsync(new Restaurante { Id = idRestaurante, Nome = "restaurante-A" }); await contexto.AddAsync(new Restaurante { Id = idRestaurante2, Nome = "restaurante-B" }); await contexto.AddAsync(new Prato { Id = id, DataCriacao = DateTimeOffset.Now, RestauranteId = idRestaurante, Nome = "novo-prato" }); await contexto.SaveChangesAsync(); var servicoEmTeste = new ServicoPersistenciaPrato(contexto, BuscaMapper()); //Executar var modelalterado = new PratoPersistenciaModel { Id = id, RestauranteId = idRestaurante2, Nome = "prato-alterado" }; await servicoEmTeste.Alterar(modelalterado); } using (var contextoVerificacao = new ContextoBdAplicacao(options)) { //Verificar var entidades = await contextoVerificacao.Pratos.ToListAsync(); entidades.Should().HaveCount(1); var entidade = entidades.FirstOrDefault(); entidade.Id.Should().NotBeEmpty(); entidade.DataAlteracao.Should().BeCloseTo(DateTimeOffset.Now, intervaloDatas); entidade.DataCriacao.Should().BeCloseTo(DateTimeOffset.Now, intervaloDatas); entidade.Excluido.Should().BeFalse(); entidade.Nome.Should().Be("prato-alterado"); entidade.RestauranteId.Should().Be(idRestaurante2); } }
public async Task AlteraEntidadeInvalida_PrecoMenorQueZero_GeraException() { var options = OptionsContext(); var id = Guid.NewGuid(); var idRestaurante = Guid.NewGuid(); var idRestaurante2 = Guid.NewGuid(); using (var contexto = new ContextoBdAplicacao(options)) { //Preparar await contexto.AddAsync(new Restaurante { Id = idRestaurante, Nome = "restaurante-A" }); await contexto.AddAsync(new Restaurante { Id = idRestaurante2, Nome = "restaurante-B" }); await contexto.AddAsync(new Prato { Id = id, DataCriacao = DateTimeOffset.Now, RestauranteId = idRestaurante, Nome = "novo-prato" }); await contexto.SaveChangesAsync(); var servicoEmTeste = new ServicoPersistenciaPrato(contexto, BuscaMapper()); //Executar var modelalterado = new PratoPersistenciaModel { Id = id, RestauranteId = idRestaurante, Nome = "prato-alterado", Preco = -1 }; Func <Task> act = async() => { await servicoEmTeste.Alterar(modelalterado); }; act.Should().Throw <ValidacaoPersistenciaException>() .WithMessage("Entidade inválida") .And.Erros.Should().BeEquivalentTo(new[] { new ErroValidacaoPropriedade("Preco", new [] { "Preço não pode ser menor que zero" }) }); } }