public async Task CriarEntidade_OK() { var options = OptionsContext(); using (var contexto = new ContextoBdAplicacao(options)) { //Preparar var servicoEmTeste = new ServicoPersistenciaRestaurante(contexto, BuscaMapper()); //Executar var novomodel = new RestaurantePersistenciaModel { Nome = "novo-restaurante" }; await servicoEmTeste.Criar(novomodel); } using (var contextoVerificacao = new ContextoBdAplicacao(options)) { //Verificar var entidades = await contextoVerificacao.Restaurantes.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("novo-restaurante"); } }
public void CriarEntidadeInvalida_NomeVazio_GeraException() { var options = OptionsContext(); using (var contexto = new ContextoBdAplicacao(options)) { //Preparar var servicoEmTeste = new ServicoPersistenciaRestaurante(contexto, BuscaMapper()); //Executar var novomodel = new RestaurantePersistenciaModel(); Func <Task> act = async() => { await servicoEmTeste.Criar(novomodel); }; act.Should().Throw <ValidacaoPersistenciaException>() .WithMessage("Entidade inválida") .And.Erros.Should().BeEquivalentTo(new[] { new ErroValidacaoPropriedade("Nome", new [] { "nome obrigatório" }) }); } }