public async Task BuscarPorId_OK() { var options = OptionsContext(); var id = Guid.NewGuid(); using (var contexto = new ContextoParaTeste(options)) { //Preparar var servicoEmTeste = new ServicoEmTeste(contexto, BuscaMapper()); var entidadeExistente = new EntidadeParaTeste { Id = id, DataAlteracao = DateTimeOffset.Now, DataCriacao = DateTimeOffset.Now, Excluido = false, PropriedadeTeste = "valor-atual" }; await contexto.AddAsync(entidadeExistente); await contexto.SaveChangesAsync(); //Executar var resultado = await servicoEmTeste.BuscarPorId(id); //Verifica resultado.Should().BeEquivalentTo(new PersistenciaModelParaTeste { Id = id, PropriedadeTeste = "valor-atual" }); } }
public void CriacaoServico_OK() { using (var contexto = new ContextoParaTeste(OptionsContext())) { var servicoEmTeste = new ServicoEmTeste(contexto, BuscaMapper()); } }
public async Task AlterarEntidadeInvalida_GeraException() { var options = OptionsContext(); var id = Guid.NewGuid(); using (var contexto = new ContextoParaTeste(options)) { //Preparar var servicoEmTeste = new ServicoEmTeste(contexto, BuscaMapper()); var entidadeExistente = new EntidadeParaTeste { Id = id, DataCriacao = DateTimeOffset.Now, PropriedadeTeste = "valor-existente" }; await contexto.AddAsync(entidadeExistente); await contexto.SaveChangesAsync(); //Executar var modelalterado = new PersistenciaModelParaTeste { Id = id }; Func <Task> act = async() => { await servicoEmTeste.Alterar(modelalterado); }; act.Should().Throw <ValidacaoPersistenciaException>() .WithMessage("Entidade inválida") .And.Erros.Should().BeEquivalentTo(new[] { new ErroValidacaoPropriedade("PropriedadeTeste", new [] { "propriedade obrigatória" }) }); } }
public async Task Buscar_ComFiltro_OK() { //Retorna somente os filtrados var options = OptionsContext(); var ids = new[] { Guid.NewGuid(), Guid.NewGuid(), Guid.NewGuid(), }; using (var contexto = new ContextoParaTeste(options)) { //Preparar var servicoEmTeste = new ServicoEmTeste(contexto, BuscaMapper()); var entidadesExistentes = new[] { new EntidadeParaTeste { Id = ids[0], DataAlteracao = DateTimeOffset.Now, DataCriacao = DateTimeOffset.Now, Excluido = false, PropriedadeTeste = "valor-atual-1" }, new EntidadeParaTeste { Id = ids[1], DataAlteracao = DateTimeOffset.Now, DataCriacao = DateTimeOffset.Now, Excluido = false, PropriedadeTeste = "valor-atual-2" }, new EntidadeParaTeste { Id = ids[2], DataAlteracao = DateTimeOffset.Now, DataCriacao = DateTimeOffset.Now, Excluido = false, PropriedadeTeste = "valor-atual-3" }, }; await contexto.AddRangeAsync(entidadesExistentes); await contexto.SaveChangesAsync(); //Executar var resultado = await servicoEmTeste.Buscar("valor-atual-2"); //Verifica resultado.Should().BeEquivalentTo(new[] { new PersistenciaModelParaTeste { Id = ids[1], PropriedadeTeste = "valor-atual-2" }, }); } }
public async Task AlterarEntidade_OK() { var options = OptionsContext(); var id = Guid.NewGuid(); using (var contexto = new ContextoParaTeste(options)) { //Preparar var servicoEmTeste = new ServicoEmTeste(contexto, BuscaMapper()); var entidadeExistente = new EntidadeParaTeste { Id = id, DataCriacao = DateTimeOffset.Now, PropriedadeTeste = "valor-existente" }; await contexto.AddAsync(entidadeExistente); await contexto.SaveChangesAsync(); //Executar var modelalterado = new PersistenciaModelParaTeste { Id = id, PropriedadeTeste = "valor-alterado" }; var res = await servicoEmTeste.Alterar(modelalterado); res.Should().NotBeNull(); res.Id.Should().Be(id); res.PropriedadeTeste.Should().Be("valor-alterado"); } using (var contextoVerificacao = new ContextoParaTeste(options)) { //Verificar var entidades = contextoVerificacao.Entidades.ToList(); entidades.Should().HaveCount(1); var entidade = entidades.FirstOrDefault(); entidade.Id.Should().Be(id); entidade.DataAlteracao.Should().BeCloseTo(DateTimeOffset.Now, intervaloDatas); entidade.DataCriacao.Should().BeCloseTo(DateTimeOffset.Now, intervaloDatas); entidade.Excluido.Should().BeFalse(); entidade.PropriedadeTeste.Should().Be("valor-alterado"); } }
public void BuscarPorId_EntidadeNaoExiste_GeraException() { var options = OptionsContext(); var id = Guid.NewGuid(); using (var contexto = new ContextoParaTeste(options)) { //Preparar var servicoEmTeste = new ServicoEmTeste(contexto, BuscaMapper()); //Executar Func <Task> act = async() => { await servicoEmTeste.BuscarPorId(id); }; act.Should().Throw <EntidadeNaoExisteException>() .WithMessage("Entidade não encontrada"); } }
public void CriarEntidadeInvalida_GeraException() { var options = OptionsContext(); using (var contexto = new ContextoParaTeste(options)) { //Preparar var servicoEmTeste = new ServicoEmTeste(contexto, BuscaMapper()); //Executar var novomodel = new PersistenciaModelParaTeste(); Func <Task> act = async() => { await servicoEmTeste.Criar(novomodel); }; act.Should().Throw <ValidacaoPersistenciaException>() .WithMessage("Entidade inválida") .And.Erros.Should().BeEquivalentTo(new[] { new ErroValidacaoPropriedade("PropriedadeTeste", new [] { "propriedade obrigatória" }) }); } }
public void AlterarEntidadeNaoExistente_GeraException() { var options = OptionsContext(); var id = Guid.NewGuid(); using (var contexto = new ContextoParaTeste(options)) { //Preparar var servicoEmTeste = new ServicoEmTeste(contexto, BuscaMapper()); //Executar var modelalterado = new PersistenciaModelParaTeste { Id = id, PropriedadeTeste = "valor-alterado" }; Func <Task> act = async() => { await servicoEmTeste.Alterar(modelalterado); }; act.Should().Throw <EntidadeNaoExisteException>() .WithMessage("Entidade não encontrada"); } }
public async Task CriarSemPersistirEntidade_OK() { var options = OptionsContext(); using (var contexto = new ContextoParaTeste(options)) { //Preparar var servicoEmTeste = new ServicoEmTeste(contexto, BuscaMapper()); //Executar var novomodel = new PersistenciaModelParaTeste { PropriedadeTeste = "novo-valor" }; await servicoEmTeste.Criar(novomodel, false); } using (var contextoVerificacao = new ContextoParaTeste(options)) { //Verificar var entidades = contextoVerificacao.Entidades.ToList(); entidades.Should().BeEmpty(); } }
public async Task CriarEntidade_OK() { var options = OptionsContext(); using (var contexto = new ContextoParaTeste(options)) { //Preparar var servicoEmTeste = new ServicoEmTeste(contexto, BuscaMapper()); //Executar var novomodel = new PersistenciaModelParaTeste { PropriedadeTeste = "novo-valor" }; var res = await servicoEmTeste.Criar(novomodel); res.Should().NotBeNull(); res.Id.Should().NotBeEmpty(); res.PropriedadeTeste.Should().Be("novo-valor"); } using (var contextoVerificacao = new ContextoParaTeste(options)) { //Verificar var entidades = await contextoVerificacao.Entidades.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.PropriedadeTeste.Should().Be("novo-valor"); } }
public ServicoEmTeste(ContextoParaTeste ctx, IMapper mapeador) : base(ctx, mapeador) { }