public void ExcluirRegistroUnicoRegistroComConcorrencia()
        {
            // Arrange
            EstudanteDominio oEstudanteDominio = null;
            Estudante oUS1_EstudanteA = null;
            Estudante oUS2_EstudanteA = null;
            Estudante oUS2_EstudanteExcluirA = null;

            // Act
            oEstudanteDominio = new EstudanteDominio();

            // usuario 1 e 2 selecionam o mesmo registro A
            oUS1_EstudanteA = oEstudanteDominio.Selecionar(2);
            oUS2_EstudanteA = oEstudanteDominio.Selecionar(2);

            // usuario 1 altera o registro A
            oUS1_EstudanteA.Nome = "US1 NOME ALTERADO";
            oEstudanteDominio.Atualizar(oUS1_EstudanteA);

            // usuario 2 tenta excluir o registro e recebe aviso de erro de concorrencia
            oUS2_EstudanteExcluirA = new Estudante();
            oUS2_EstudanteExcluirA.ID = oUS2_EstudanteA.ID;
            oUS2_EstudanteExcluirA.RowVersion = oUS2_EstudanteA.RowVersion;
            oEstudanteDominio.Excluir(oUS2_EstudanteExcluirA);

            oEstudanteDominio = null;
            oUS1_EstudanteA = null;
            oUS2_EstudanteA = null;
            oUS2_EstudanteExcluirA = null;
        }
        public void AtualizaRegistroComConcorrencia_RegistroExcluido()
        {
            // Arrange
            EstudanteDominio oEstudanteDominio = null;
            Estudante oUsuario1_EstudanteA = null;
            Estudante oUsuario1_EstudanteExcluirA = null;
            Estudante oUsuario2_EstudanteA = null;

            // Act
            oEstudanteDominio = new EstudanteDominio();

            // usuario 1 e 2 seleciona estudante A
            oUsuario1_EstudanteA = oEstudanteDominio.Selecionar(6);
            oUsuario2_EstudanteA = oEstudanteDominio.Selecionar(6);

            // usuario 1 exclui o registro A primeiro
            oUsuario1_EstudanteExcluirA = new Estudante();
            oUsuario1_EstudanteExcluirA.ID = oUsuario1_EstudanteA.ID;
            oUsuario1_EstudanteExcluirA.RowVersion = oUsuario1_EstudanteA.RowVersion;
            oEstudanteDominio.Excluir(oUsuario1_EstudanteExcluirA);

            // usuario 2 edita e salva estudante A depois e recebe um aviso de concorrencia do banco
            oUsuario2_EstudanteA.Nome = "TESTE CONCORRENCIA US2";
            oEstudanteDominio.Atualizar(oUsuario2_EstudanteA);

            oEstudanteDominio = null;
            oUsuario1_EstudanteA = null;
            oUsuario2_EstudanteA = null;
        }
        public void ExcluirRegistroUnico()
        {
            // Arrange
            EstudanteDominio oEstudanteDominio = null;
            Estudante oEstudante = null;
            Estudante oEstudanteExcluir = null;
            Boolean isSucesso;

            // Act
            oEstudanteDominio = new EstudanteDominio();

            // usuário seleciona o registro pra confirmação de excusão
            oEstudante = oEstudanteDominio.Selecionar(1);

            // usuario executa a ação de exclusão (passando a versao do registro para checagem de concorrencia no banco)
            oEstudanteExcluir = new Estudante();
            oEstudanteExcluir.ID = oEstudante.ID;
            oEstudanteExcluir.RowVersion = oEstudante.RowVersion;
            isSucesso = oEstudanteDominio.Excluir(oEstudanteExcluir);

            // Assert
            Assert.IsTrue(isSucesso);

            oEstudanteDominio = null;
            oEstudante = null;
            oEstudanteExcluir = null;
        }
        public void InsereMultiplosRegistros()
        {
            // Arrange
            EstudanteDominio oEstudanteDominio = null;
            List<Estudante> oEstudanteList = null;
            Boolean isSucesso;

            // Act
            oEstudanteList = new List<Estudante>()
            {
                  new Estudante() { Nome = "Roginaldo", Idade = 27 }
                , new Estudante() { Nome = "Mariana", Idade = 33 }
                , new Estudante() { Nome = "Karine", Idade = 18, DataExclusao = DateTime.Now }
                , new Estudante() { Nome = "Raquel", Idade = 21 }
                , new Estudante() { Nome = "Marcelo", Idade = 43 }
            };

            oEstudanteDominio = new EstudanteDominio();
            isSucesso = oEstudanteDominio.Inserir(oEstudanteList);

            // Assert
            Assert.IsTrue(isSucesso);

            oEstudanteDominio = null;
            oEstudanteList = null;
        }
        public void AtualizaRegistroComConcorrencia()
        {
            // Arrange
            EstudanteDominio oEstudanteDominio = null;
            Estudante oUsuario1_EstudanteA = null;
            Estudante oUsuario2_EstudanteA = null;

            // Act
            oEstudanteDominio = new EstudanteDominio();

            // usuario 1 seleciona estudante A
            oUsuario1_EstudanteA = oEstudanteDominio.Selecionar(2);

            // usuario 2 seleciona estudante A
            oUsuario2_EstudanteA = oEstudanteDominio.Selecionar(2);

            // usuario 1 edita e salva estudante A primeiro
            oUsuario1_EstudanteA.Nome = "TESTE CONCORRENCIA US1";
            oEstudanteDominio.Atualizar(oUsuario1_EstudanteA);

            // usuario 2 edita e salva estudante A depois (irá causar uma exceção de concorrencia)
            oUsuario2_EstudanteA.Nome = "TESTE CONCORRENCIA US2";
            oEstudanteDominio.Atualizar(oUsuario2_EstudanteA);

            oEstudanteDominio = null;
            oUsuario1_EstudanteA = null;
            oUsuario2_EstudanteA = null;
        }
        public void AtivarRegistroUnico()
        {
            // Arrange
            EstudanteDominio oEstudanteDominio = null;
            Boolean isSucesso;

            // Act
            oEstudanteDominio = new EstudanteDominio();
            isSucesso = oEstudanteDominio.Ativar(1);

            // Assert
            Assert.IsTrue(isSucesso);
        }
        public void AtivarMultiplosRegistros()
        {
            // Arrange
            EstudanteDominio oEstudanteDominio = null;
            int[] IdArrays = new int[] { 3, 5 };
            Boolean isSucesso;

            // Act
            oEstudanteDominio = new EstudanteDominio();
            isSucesso = oEstudanteDominio.Ativar(r => IdArrays.Contains(r.ID));

            // Assert
            Assert.IsTrue(isSucesso);
        }
        public void ListaRegistros_RegistrosInativos()
        {
            // Arrange
            EstudanteDominio oEstudanteDominio = null;
            IEnumerable<Estudante> oEstudanteList = null;

            // Act
            oEstudanteDominio = new EstudanteDominio(OpcaoRegistrosVisiveis.Inativos);
            oEstudanteList = oEstudanteDominio.Listar();

            // Assert
            Assert.IsNotNull(oEstudanteList.Select(r => r.DataExclusao != null));

            oEstudanteDominio = null;
            oEstudanteList = null;
        }
        public void ListaRegistros_SemCriterios()
        {
            // Arrange
            EstudanteDominio oEstudanteDominio = null;
            IEnumerable<Estudante> oEstudanteList = null;

            // Act
            oEstudanteDominio = new EstudanteDominio();
            oEstudanteList = oEstudanteDominio.Listar();

            // Assert
            Assert.IsNotNull(oEstudanteList);

            oEstudanteDominio = null;
            oEstudanteList = null;
        }
        public void ListaRegistros_RegistrosAtivos()
        {
            // Arrange
            EstudanteDominio oEstudanteDominio = null;
            IEnumerable<Estudante> oEstudanteList = null;

            // Act
            oEstudanteDominio = new EstudanteDominio();
            oEstudanteList = oEstudanteDominio.Listar();

            // Assert
            Assert.IsNotNull(oEstudanteList.Count(r => r.DataExclusao == null) > 0);
            Assert.IsTrue(oEstudanteList.Count(r => r.DataExclusao != null) == 0);

            oEstudanteDominio = null;
            oEstudanteList = null;
        }
        public void SelecionaRegistroUnico()
        {
            // Arrange
            EstudanteDominio oEstudanteDominio = null;
            Estudante oEstudante = null;

            // Act
            oEstudanteDominio = new EstudanteDominio();
            oEstudante = oEstudanteDominio.Selecionar(1);

            // Assert
            Assert.IsNotNull(oEstudante);
            Assert.IsTrue(oEstudante.DataExclusao == null);

            oEstudanteDominio = null;
            oEstudante = null;
        }
        public void SelecionaRegistroUnicoInativoComExcecao()
        {
            // Arrange
            EstudanteDominio oEstudanteDominio = null;
            Estudante oEstudante = null;

            // Act 
            // Inativa registro 4 
            oEstudanteDominio = new EstudanteDominio();
            oEstudanteDominio.Inativar(4);

            // Assert Exception 
            oEstudanteDominio = new EstudanteDominio();
            oEstudante = oEstudanteDominio.Selecionar(4);

            oEstudanteDominio = null;
            oEstudante = null;
        }
        public void InsereRegistroUnico()
        {
            // Arrange
            EstudanteDominio oEstudanteDominio = null;
            Estudante oEstudante = null;
            Boolean isSucesso;

            // Act
            oEstudante = new Estudante() { Nome = "Tiago", Idade = 27 };

            oEstudanteDominio = new EstudanteDominio();
            isSucesso = oEstudanteDominio.Inserir(oEstudante);

            // Assert
            Assert.IsTrue(isSucesso);

            oEstudanteDominio = null;
            oEstudante = null;
        }
        public void AtualizaRegistroUnico()
        {
            // Arrange
            EstudanteDominio oEstudanteDominio = null;
            Estudante oEstudante = null;
            Boolean isSucesso;

            // Act
            oEstudanteDominio = new EstudanteDominio();
            oEstudante = oEstudanteDominio.Selecionar(1);

            oEstudante.Nome = "Tiago Santos";
            oEstudante.Idade = 20;

            isSucesso = oEstudanteDominio.Atualizar(oEstudante);

            // Assert
            Assert.IsTrue(isSucesso);

            oEstudanteDominio = null;
            oEstudante = null;
        }
        public void SelecionaRegistroUnicoInativoSemExcecao()
        {
            // Arrange
            EstudanteDominio oEstudanteDominio = null;
            Estudante oEstudante = null;

            // Act

            // Inativa registro 4 
            oEstudanteDominio = new EstudanteDominio();
            oEstudanteDominio.Inativar(4);

            // Seleciona registro inativado
            oEstudanteDominio = new EstudanteDominio(OpcaoRegistrosVisiveis.Todos);
            oEstudante = oEstudanteDominio.Selecionar(4);

            // Assert
            Assert.IsNotNull(oEstudante);
            Assert.IsTrue(oEstudante.DataExclusao != null);

            oEstudanteDominio = null;
            oEstudante = null;
        }
        public void ListaRegistros_ComOrdenacaoMultipla()
        {
            // Arrange
            EstudanteDominio oEstudanteDominio = null;
            IEnumerable<Estudante> EstudantesList = null;
            CriteriosBuilder<Estudante> Criterios = null;

            // Act
            Criterios = new CriteriosBuilder<Estudante>();
            Criterios.AddOrdemPor(o => o.Idade, OrdenacaoDirecao.Decrescente);
            Criterios.AddOrdemPor(o => o.Nome);

            oEstudanteDominio = new EstudanteDominio();
            EstudantesList = oEstudanteDominio.Listar(Criterios);

            // Assert
            Assert.IsNotNull(EstudantesList);

            oEstudanteDominio = null;
            EstudantesList = null;
        }
        public void ExcluirMultiplosRegistros()
        {
            // Arrange
            EstudanteDominio oEstudanteDominio = null;
            List<Estudante> EstudantesList = null;
            List<Estudante> EstudantesExcluirList = null;
            Boolean isSucesso;

            // Act
            oEstudanteDominio = new EstudanteDominio(OpcaoRegistrosVisiveis.Todos);
            EstudantesList = oEstudanteDominio.Listar() as List<Estudante>;

            // usuario seleciona registros 3, 4 e 5 para excluir
            EstudantesExcluirList = EstudantesList.Where(r => new int[] { 2, 3, 4, 5 }.Contains(r.ID)).ToList();
            isSucesso = oEstudanteDominio.Excluir(EstudantesExcluirList);

            // Assert
            Assert.IsTrue(isSucesso);

            oEstudanteDominio = null;
            EstudantesList = null;
            EstudantesExcluirList = null;
        }
        public void ListaRegistros_ComPaginacao()
        {
            // Arrange
            EstudanteDominio oEstudanteDominio = null;
            PagedList<Estudante> EstudantesPagedList = null;
            CriteriosBuilder<Estudante> Criterios = null;

            // Act
            Criterios = new CriteriosBuilder<Estudante>();
            Criterios.AddOrdemPor(o => o.ID);
            Criterios.Pagina = 1;

            oEstudanteDominio = new EstudanteDominio();
            EstudantesPagedList = oEstudanteDominio.Listar(Criterios) as PagedList<Estudante>;

            // Assert
            Assert.IsNotNull(EstudantesPagedList);

            oEstudanteDominio = null;
            EstudantesPagedList = null;
        }
        public void ListaRegistros_ComDiversosCriterios()
        {
            // Arrange
            EstudanteDominio oEstudanteDominio = null;
            PagedList<Estudante> EstudantesPagedList = null;
            CriteriosBuilder<Estudante> Criterios = null;

            // Act
            Criterios = new CriteriosBuilder<Estudante>();
            Criterios.AddFiltro(o => o.Idade > 20);
            Criterios.AddOrdemPor(o => o.Idade, OrdenacaoDirecao.Decrescente);
            Criterios.AddOrdemPor(o => o.Nome);
            Criterios.Pagina = 1;

            oEstudanteDominio = new EstudanteDominio();
            EstudantesPagedList = oEstudanteDominio.Listar(Criterios) as PagedList<Estudante>;

            // Assert
            Assert.IsNotNull(EstudantesPagedList);

            oEstudanteDominio = null;
            EstudantesPagedList = null;
        }
        public void ListaRegistros_ComFiltros()
        {
            // Arrange
            EstudanteDominio oEstudanteDominio = null;
            IEnumerable<Estudante> EstudantesList = null;
            CriteriosBuilder<Estudante> Criterios = null;

            // Act
            Criterios = new CriteriosBuilder<Estudante>();
            Criterios.AddFiltro(f => f.Idade >= 20 && f.Idade <= 30);

            oEstudanteDominio = new EstudanteDominio();
            EstudantesList = oEstudanteDominio.Listar(Criterios);

            // Assert
            Assert.IsNotNull(EstudantesList);

            oEstudanteDominio = null;
            EstudantesList = null;
        }
        public void ExcluirMultiplosRegistrosComConcorrencia()
        {
            // Arrange
            EstudanteDominio oEstudanteDominio = null;
            Estudante oUS1_EstudanteA = null;
            List<Estudante> EstudantesList = null;
            List<Estudante> oUS2_EstudantesExcluirList = null;

            // Act
            oEstudanteDominio = new EstudanteDominio(OpcaoRegistrosVisiveis.Todos);
            EstudantesList = oEstudanteDominio.Listar() as List<Estudante>;

            // usuario 1 seleciona o registro A para alteracao
            // usuario 2 seleciona diversos registros para exclusao, incluindo o registro A
            oUS1_EstudanteA = oEstudanteDominio.Selecionar(5);
            oUS2_EstudantesExcluirList = EstudantesList.Where(r => new int[] { 2, 3, 4, 5 }.Contains(r.ID)).ToList();

            // usuario 1 altera o registro A
            oUS1_EstudanteA.Nome = "US1 NOME ALTERADO";
            oEstudanteDominio.Atualizar(oUS1_EstudanteA);

            // usuario 2 tenta excluir os registros selecionados e confirmados recebe aviso de erro de concorrencia
            oEstudanteDominio.Excluir(oUS2_EstudantesExcluirList);

            oEstudanteDominio = null;
            oUS1_EstudanteA = null;
            EstudantesList = null;
            oUS2_EstudantesExcluirList = null;
        }
        public void AtualizaMultiplosRegistros()
        {
            // Arrange
            EstudanteDominio oEstudanteDominio = null;
            List<Estudante> oEstudanteList = null;
            Boolean isSucesso;

            // Act
            oEstudanteDominio = new EstudanteDominio();

            // selecionando e adicionando na lista
            oEstudanteList = new List<Estudante>()
            {
                  oEstudanteDominio.Selecionar(2)
                , oEstudanteDominio.Selecionar(3)
                , oEstudanteDominio.Selecionar(5)
            };

            // alterando valores
            oEstudanteList.Find(c => c.ID == 2).Nome = "Reginaldo Rossi";
            oEstudanteList.Find(c => c.ID == 3).Nome = "Mariana de Melo";
            oEstudanteList.Find(c => c.ID == 5).Nome = "Karine Roque";

            oEstudanteDominio = new EstudanteDominio();
            isSucesso = oEstudanteDominio.Atualizar(oEstudanteList);

            // Assert
            Assert.IsTrue(isSucesso);

            oEstudanteDominio = null;
            oEstudanteList = null;
        }