public void SeRealizarConsulta1000VezesUtilizandoVarioDeveTrazerResultadoTodasAsVezes() { var contexto = ContextoHelper.Criar(); var buscador = contexto.Buscar <ObjetoDeTestes>(); for (int n = 0; n < 1000; n++) { var config = buscador.CriarQuery() .DefinirLimite(1) .AdicionarCondicao(s => s.Nome).Igual("Teste A"); ObjetoDeTestes objeto = null; foreach (var item in buscador.Varios(config)) { objeto = item; } objeto .Should() .NotBeNull(); objeto.Codigo .Should() .Be(1); } }
public void SeConsultarOrdenandoECarregandoPropriedadesDeveCarregarPropriedadesCorretamente() { var contexto = ContextoHelper.Criar(); var buscador = contexto.Buscar <ObjetoDeTestes>(); var config = buscador.CriarQuery() .CarregarPropriedade(o => o.Filhos) .AdicionarCondicao(o => o.Codigo).Entre(1, 2) .AdicionarOrdem(o => o.Codigo); var objetos = buscador.Varios(config).ToList(); objetos.Count .Should() .Be(2); objetos[0].Codigo .Should() .Be(1); objetos[0].Filhos.Count .Should() .Be(3, "porque deve existir 3 filhos pro primeiro objeto!"); objetos[1].Codigo .Should() .Be(2); objetos[1].Filhos.Count .Should() .Be(2, "porque deve existir 2 filhos pro segundo objeto!"); }
public void SeConsultarVariosObjetosCarregandoPropriedadePaiDeveTrazerCorretamente() { var contexto = ContextoHelper.Criar(); var buscador = contexto.Buscar <FilhoDoObjetoDeTestes>(); var config = buscador.CriarQuery() .CarregarPropriedade(o => o.Netos) .CarregarPropriedade(o => o.Pai) .AdicionarCondicao(o => o.Id).Entre(4, 5); var objetos = buscador.Varios(config).ToList(); objetos.Count .Should() .Be(2); objetos[0].Pai .Should() .NotBeNull("porque o pai de indice zero deve ser carregado!"); objetos[0].Pai.Nome .Should() .Be("Teste B"); objetos[1].Netos.Count .Should() .Be(1, "porque deve existir 1 filho pro segundo objeto!"); }
public void SeGerarUmVolumeGrandeDeRegistrosNaoDeveGerarErro() { var contexto = ContextoHelper.Criar(); var repositorio = contexto.Repositorio <ObjetoDeTestes>(); repositorio.DesativarValidacoes(); repositorio.SalvarFilhos = false; for (int i = 0; i < 1000000; i++) { var objeto = repositorio.Criar(); objeto.Codigo = (i + 1) * 2000; objeto.Nome = "Registro " + objeto.Codigo.ToString(); if (objeto.Nome.Length % 3 == 0) { objeto.Nome += "!"; } objeto.Duplo = objeto.Codigo / 100.0 + 0.1; objeto.Decimal = objeto.Codigo / 200.0M + 0.2M; objeto.Logico = (i % 2 == 0); objeto.DataHora = DateTime.Now; repositorio.Inserir(objeto); } // contexto.Salvar(); }
public void SeRealizarConsultaDeUmObjeto10000VezesUtilizandoConsultarDeveDurarMenosQueCincoSegundos() { var tempo = new Stopwatch(); tempo.Start(); Parallel.For(0, 10_000, n => { using (var contexto = ContextoHelper.Criar()) { var repositorio = contexto.Repositorio <ObjetoDeTestes>(); var objeto = repositorio.Consultar(1); objeto .Should() .NotBeNull(); objeto.Codigo .Should() .Be(1); } }); tempo.Stop(); tempo.ElapsedMilliseconds .Should() .BeLessOrEqualTo(1000 * 5); }
public void SeRealizarConsultaScalar100MilVezesUtilizandoConsultarDeveDurarMenosQueCincoSegundos() { var tempo = new Stopwatch(); tempo.Start(); Parallel.For(0, 100_000, n => { using (var contexto = ContextoHelper.Criar()) { var repositorio = contexto.Repositorio <ObjetoDeTestes>(); var consulta = repositorio.Buscar.CriarQuery(); consulta.AdicionarCondicao(o => o.Codigo).Igual(1); consulta.AdicionarResultado(o => o.Nome); var objeto = repositorio.Buscar.Scalar(consulta); objeto .Should() .NotBeNull(); objeto .Should() .Be("Teste A"); } }); tempo.Stop(); tempo.ElapsedMilliseconds .Should() .BeLessOrEqualTo(1000 * 5); }
public void SeAcessarRepositorioDezMilhoesDeVezesDeveRetornarRepositorioValido() { var contexto = ContextoHelper.Criar(); contexto.Repositorio <NetoDoObjetoDeTestes>(); contexto.Repositorio <FilhoDoObjetoDeTestes>(); contexto.Repositorio <FilhoMistoDoObjetoDeTestes>(); var primeiraInstancia = contexto.Repositorio <ObjetoDeTestes>(); for (int i = 0; i < 10_000_000; i++) { var repositorio = contexto.Repositorio <ObjetoDeTestes>(); repositorio .Should() .Be(primeiraInstancia); } }
public void SeRealizarConsulta1000VezesUtilizandoConsultarDeveTrazerResultadoTodasAsVezes() { var contexto = ContextoHelper.Criar(); var repositorio = contexto.Repositorio <ObjetoDeTestes>(); for (int n = 0; n < 1000; n++) { ObjetoDeTestes objeto = repositorio.Consultar(1); objeto .Should() .NotBeNull(); objeto.Codigo .Should() .Be(1); } }
public void SeRealizarConsulta1000VezesUtilizandoUmDeveTrazerResultadoTodasAsVezes() { var contexto = ContextoHelper.Criar(); var buscador = contexto.Buscar <ObjetoDeTestes>(); for (int n = 0; n < 1000; n++) { var config = buscador.CriarQuery() .AdicionarCondicao(s => s.Nome).Igual("Teste A"); var objeto = buscador.Um(config); objeto .Should() .NotBeNull(); objeto.Codigo .Should() .Be(1); } }