public void IncluirAlterarExcluirUmClienteNoZimmer()
        {
            var unit = new MainUnitOfWork();
            var clienteRepository = new ClienteRepository(unit);

            var cliente = new Cliente();
            cliente.Nome = "Teste:IncluirUmClienteNoZimmer";
            cliente.PackageId = 10;
            cliente.GenerateNewIdentity();

            clienteRepository.Add(cliente);
            unit.Commit();

            Cliente clienteIncluido = clienteRepository.GetFiltered(s => s.Id == cliente.Id).FirstOrDefault();
            bool equals = clienteIncluido.Equals(cliente);
            clienteIncluido.Nome = "Teste:EditarUmClienteNoZimmer";

            clienteRepository.Modify(clienteIncluido);
            unit.Commit();

            clienteRepository.Remove(clienteIncluido);
            unit.Commit();

            var clienteExcluido = clienteRepository.GetFiltered(s => s.Id == cliente.Id).FirstOrDefault();
            Assert.IsTrue(equals, "Não foi encontrado dados na tabela cliente do zimmer, talvez o método Seed não esteja funcional");
            Assert.IsNull(clienteExcluido, "Mesmo após ter excluido um cliente foi possível encontra-lo no banco de dados");
        }
        public void IncluirExcluirProjeto()
        {
            var unit = new MainUnitOfWork();
            var projetoRepository = new ProjetoRepository(unit);
            var clienteRepository = new ClienteRepository(unit);

            Projeto projeto = new Projeto();
            projeto.Nome = "Teste Inclusão de Projeto";
            projeto.PackageId = 13;
            projeto.GenerateNewIdentity();

            Cliente cliente = new Cliente();
            cliente.Nome = "Teste de inclusão de projeto";
            cliente.PackageId = 10;
            cliente.GenerateNewIdentity();
            cliente.Projetos = new List<Projeto>();
            cliente.Projetos.Add(projeto);

            clienteRepository.Add(cliente);

            unit.Commit();

            var projetoIncluido = projetoRepository.GetFiltered(s => s.Id == projeto.Id).FirstOrDefault();
            bool equals = projetoIncluido.Equals(projeto);

            projetoRepository.Remove(projetoIncluido);

            unit.Commit();

            var clienteExcluido = projetoRepository.GetFiltered(s => s.Id == projeto.Id).FirstOrDefault();

            Assert.IsTrue(equals, "Não foi encontrado dados na tabela Projeto do zimmer, talvez o método Seed não esteja funcional");
            Assert.IsNull(clienteExcluido, "Mesmo após ter excluido um projeto foi possível encontra-lo no banco de dados");
        }
        public void IncluirClienteMesmoPackegNoZimmer()
        {
            var unit = new MainUnitOfWork();
            var clienteRepository = new ClienteRepository(unit);

            var cliente = new Cliente();
            cliente.Nome = "Cadastrando primeiro Cliente";
            cliente.PackageId = 10;
            cliente.GenerateNewIdentity();

            clienteRepository.Add(cliente);

            cliente.Nome = "Cadastrando segundo cliente";
            cliente.PackageId = 10;
            cliente.GenerateNewIdentity();

            clienteRepository.Add(cliente);

            unit.Commit();

            Assert.IsTrue(false,"Cliente cadastrado duplicado");
        }
        public void IncluirProjetoComUmPackegIDExistenteNoZimmer()
        {
            var unit = new MainUnitOfWork();

            var clienteRepository = new ClienteRepository(unit);
            var projetoRepository = new ProjetoRepository(unit);

            var projeto = new Projeto();
            projeto.Nome = "Incluir um projeto no Zimmer";
            projeto.PackageId = 13;
            projeto.GenerateNewIdentity();

            var cliente = new Cliente();
            cliente.Nome = "Incluir um projeto no Zimmer";
            cliente.PackageId = 13;
            cliente.GenerateNewIdentity();
            cliente.Projetos = new List<Projeto>();
            cliente.Projetos.Add(projeto);

            clienteRepository.Add(cliente);

            unit.Commit();

            var clienteIncluido = clienteRepository.GetFiltered(s => s.Id == cliente.Id).FirstOrDefault();
            var projetoIncluido = projetoRepository.GetFiltered(s => s.PackageId == cliente.PackageId).FirstOrDefault();
            bool equals = projetoIncluido.Equals(projeto);

            Assert.IsNull(equals, "Cliente Cadastrado com mesmo PackageID do Projeto.");
        }
        public void IncluirProjetoSemPackegIDNoZimmer()
        {
            var unit = new MainUnitOfWork();
            var projetoRepository = new ProjetoRepository(unit);
            var clienteRepository = new ClienteRepository(unit);

            var projeto = new Projeto();
            var cliente = new Cliente();

            projeto.Nome = "Incluido teste de projeto";
            projeto.GenerateNewIdentity();

            cliente.Nome = "Incluido teste de Projeto";
            cliente.PackageId = 10;
            cliente.GenerateNewIdentity();
            cliente.Projetos = new List<Projeto>();
            cliente.Projetos.Add(projeto);

            clienteRepository.Add(cliente);

            unit.Commit();

            var clienteIncluido = clienteRepository.GetFiltered(s => s.Id == cliente.Id).FirstOrDefault();
            bool equals = clienteIncluido.Equals(cliente);

            Assert.IsTrue(false, "Cliente Cadastrado com PackageID 0.");
        }
        public void IncluirProjetoSemNomeNoZimmer()
        {
            var unit = new MainUnitOfWork();
            var projetoRepository = new ProjetoRepository(unit);
            var clienteRepository = new ClienteRepository(unit);

            Projeto projeto = new Projeto();
            projeto.PackageId = 13;
            projeto.GenerateNewIdentity();

            Cliente cliente = new Cliente();
            cliente.Nome = "Teste de inclusão de projeto";
            cliente.PackageId = 10;
            cliente.GenerateNewIdentity();
            cliente.Projetos = new List<Projeto>();
            cliente.Projetos.Add(projeto);

            clienteRepository.Add(cliente);

            unit.Commit();

            Assert.IsTrue(false,"Projeto incluido com campo Nome não preenchido.");
        }
        public void IncluirClienteSemProjetoNoZimmer()
        {
            var unit = new MainUnitOfWork();
            var clienteRepository = new ClienteRepository(unit);

            var cliente = new Cliente();
            cliente.Nome = "Cadastrar Cliente sem Projeto";
            cliente.PackageId = 0;
            cliente.GenerateNewIdentity();

            clienteRepository.Add(cliente);

            unit.Commit();

            var clienteIncluido = clienteRepository.GetFiltered(s => s.Id == cliente.Id).FirstOrDefault();
            bool equals = clienteIncluido.Equals(cliente);

            Assert.IsTrue(false, "Cliente Cadastrado com PackageID 0.");
        }
        public void IncluirClienteSemNomeNoZimmer()
        {
            var unit = new MainUnitOfWork();
            var clienteRepository = new ClienteRepository(unit);

            var cliente = new Cliente();
            cliente.Nome = null;
            cliente.PackageId = 10;
            cliente.GenerateNewIdentity();

            clienteRepository.Add(cliente);

            unit.Commit();

            Assert.IsTrue(false, "O Cliente foi cadastrado com o campo Nome Nulo!");
        }