public static Cliente CadastrarPessoaFisica(string nome, string email, string dddTelefone, string telefone, string dddCelular, string celular, string cpf, string rg, string sexo, DateTime dtNascimento, string tipoLogradouro, string logradouro, int numero, string comp, string bairro, string cidade, string uF, string cep, decimal Salario, int numeroAgencia)
        {
            if (DateTime.Now.Year - dtNascimento.Year < 18)
            {
                throw new InvalidOperationException("Perfil do cliente não atende: Idade inferior a 18");
            }

            var cliente = RepositorioCliente.CriarPessoaFisica(nome, email, dddTelefone, telefone, dddCelular, celular, cpf, rg, sexo, dtNascimento, tipoLogradouro, logradouro, numero, comp, bairro, cidade, uF, cep);

            // "Acha"já dá erro se nao existir a agencia!!!
            var agencia = RepositorioAgencia.Acha(numeroAgencia);


            // CRIAR UMA CONTA CORRENTE
            if (Salario > 5000)
            {
                RepositorioContaCorrente.AbrirContaEspecial(cliente, agencia, Salario * 2);
            }
            else
            {
                RepositorioContaCorrente.AbrirContaNormal(cliente, agencia);
            }


            return(cliente);
        }
Ejemplo n.º 2
0
        public void Criar_Agencia_Existente()
        {
            RepositorioAgencia.Limpa();
            var ag = RepositorioAgencia.Criar(123, "Xpto Barra", 100, "XPTO");

            Assert.Throws <InvalidOperationException>(() => RepositorioAgencia.Criar(123, "Xpto Barra", 100, "XPTO"));
        }
Ejemplo n.º 3
0
        public void Criar_Agencia()
        {
            var ag = RepositorioAgencia.Criar(123, "Xpto Barra", 100, "XPTO");

            Assert.IsNotNull(ag);
            Assert.AreEqual("Xpto Barra", ag.Descricao);
            Assert.AreEqual(123, ag.Numero);
            Assert.AreEqual(100, ag.NumeroBanco);
            Assert.AreEqual("XPTO", ag.NomeBanco);
        }
Ejemplo n.º 4
0
        public void SolicitarAberturaDeContaPessoaJuridica()
        {
            RepositorioAgencia.Limpa();
            RepositorioAgencia.Criar(125, "ag 125", 1, "banco");

            var cliente = (PessoaJuridica)ServicoCliente.CadastrarPessoaJuridica("EMPRESA XPTO", "*****@*****.**", "21", "1234-5678", "21", "9876-5432", "1234567890", "55889966", new DateTime(1985, 1, 1), "AV", "Americas", 3000, "", "Barra da Tijuca", "Rio de Janeiro", "RJ", "22640102", 4000, 125);

            Assert.AreEqual("1234567890", cliente.Cnpj);
            Assert.AreEqual(new DateTime(1985, 1, 1), cliente.DataFundacao);
            Assert.AreEqual("55889966", cliente.InscricaoEstadual);

            Assert.IsNotNull(cliente);
        }
Ejemplo n.º 5
0
        public void SolicitarAberturaDeContaPessoaFisica_SegundaConta()
        {
            RepositorioAgencia.Limpa();
            RepositorioContaCorrente.Limpa();
            RepositorioAgencia.Criar(125, "ag 125", 1, "banco");


            Assert.IsNotNull(ServicoCliente.CadastrarPessoaFisica("Edson", "*****@*****.**", "21", "1234-5678", "21", "9876-5432", "1234567890", "55889966", "M", new DateTime(1985, 10, 3), "AV", "Americas", 3000, "", "Barra da Tijuca", "Rio de Janeiro", "RJ", "22640102", 4999, 125));
            var cliente2 = ServicoCliente.CadastrarPessoaFisica("Edson2", "*****@*****.**", "21", "1234-5678", "21", "9876-5432", "1234567890", "55889966", "M", new DateTime(1985, 10, 3), "AV", "Americas2", 3000, "", "Barra da Tijuca2", "Rio de Janeiro", "RJ", "22640102", 4999, 125);

            var conta = RepositorioContaCorrente.Listar().Where(c => c.Cliente == cliente2).First();

            Assert.AreEqual(2, conta.Numero);
        }
Ejemplo n.º 6
0
        public void SolicitarAberturaDeContaPessoaFisica()
        {
            RepositorioAgencia.Limpa();
            RepositorioAgencia.Criar(125, "ag 125", 1, "banco");

            var cliente = (PessoaFisica)ServicoCliente.CadastrarPessoaFisica("Edson", "*****@*****.**", "21", "1234-5678", "21", "9876-5432", "1234567890", "55889966", "M", new DateTime(1985, 10, 3), "AV", "Americas", 3000, "", "Barra da Tijuca", "Rio de Janeiro", "RJ", "22640102", 4999, 125);



            Assert.IsNotNull(cliente);

            Assert.AreEqual("Edson", cliente.Nome);
            Assert.AreEqual("*****@*****.**", cliente.Email);

            Assert.IsNotNull(cliente.Endereco);

            Assert.AreEqual("AV", cliente.Endereco.TipoLogradouro);
            Assert.AreEqual("Americas", cliente.Endereco.Logradouro);
            Assert.AreEqual(3000, cliente.Endereco.Numero);
            Assert.AreEqual("", cliente.Endereco.Comp);
            Assert.AreEqual("Barra da Tijuca", cliente.Endereco.Bairro);
            Assert.AreEqual("Rio de Janeiro", cliente.Endereco.Cidade);
            Assert.AreEqual("RJ", cliente.Endereco.UF);
            Assert.AreEqual("22640102", cliente.Endereco.Cep);


            Assert.AreEqual("1234567890", cliente.Cpf);
            Assert.AreEqual("55889966", cliente.Rg);
            Assert.AreEqual("M", cliente.Sexo);
            Assert.AreEqual(new DateTime(1985, 10, 3), cliente.DataNascimento);

            var tel = cliente.Telefones.First();

            Assert.AreEqual("21", tel.DDD);
            Assert.AreEqual("1234-5678", tel.Numero);
            Assert.AreEqual("Residencial", tel.Tipo);
        }
Ejemplo n.º 7
0
 public void SolicitarAberturaDeContaEspecialPessoaFisica()
 {
     RepositorioAgencia.Limpa();
     RepositorioAgencia.Criar(125, "ag 125", 1, "banco");
     Assert.IsNotNull(ServicoCliente.CadastrarPessoaFisica("Edson", "*****@*****.**", "21", "1234-5678", "21", "9876-5432", "1234567890", "55889966", "M", new DateTime(1985, 10, 3), "AV", "Americas", 3000, "", "Barra da Tijuca", "Rio de Janeiro", "RJ", "22640102", 5500, 125));
 }
Ejemplo n.º 8
0
 public void SolicitarAberturaDeContaMenorIdade()
 {
     RepositorioAgencia.Limpa();
     RepositorioAgencia.Criar(125, "ag 125", 1, "banco");
     Assert.Throws <InvalidOperationException>(() => ServicoCliente.CadastrarPessoaFisica("Edson", "*****@*****.**", "21", "1234-5678", "21", "9876-5432", "1234567890", "55889966", "M", new DateTime(2005, 10, 3), "AV", "Americas", 3000, "", "Barra da Tijuca", "Rio de Janeiro", "RJ", "22640102", 4999, 125));
 }
Ejemplo n.º 9
0
 public void SolicitarAberturaDeContaPessoaJuridica_DataFundacao_Recente()
 {
     RepositorioAgencia.Limpa();
     RepositorioAgencia.Criar(125, "ag 125", 1, "banco");
     Assert.Throws <InvalidOperationException>(() => ServicoCliente.CadastrarPessoaJuridica("EMPRESA XPTO", "*****@*****.**", "21", "1234-5678", "21", "9876-5432", "1234567890", "55889966", new DateTime(2010, 1, 1), "AV", "Americas", 3000, "", "Barra da Tijuca", "Rio de Janeiro", "RJ", "22640102", 4000, 125));
 }