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 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 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_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 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_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_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;
        }