Ejemplo n.º 1
0
        public void Devo_Conseguir_Validar_CNPJ_De_Uma_Empresa_Nova_Se_Nao_Houver_Outra_Empresa_Cadastrada()
        {
            Empresa novaEmpresa = this._empresaPadrao;

            novaEmpresa.AdicionaDocumento(new CNPJ("12345678901234"));

            ValidadorEmpresa validador = new ValidadorEmpresa(null);

            validador.ValidarDuplicidadeCNPJDeNovaEmpresa(novaEmpresa);
        }
Ejemplo n.º 2
0
        public void Nao_Devo_Conseguir_Validar_Uma_Nova_Empresa_Com_CNPJ_Cadastrado_Para_Outra_Empresa()
        {
            Empresa novaEmpresa = this._empresaPadrao;

            novaEmpresa.AdicionaDocumento(new CNPJ("12345678901234"));

            Empresa empresaCadastradaNoBancoDeDados = EmpresaStub.GetInstance(1, "UENP Universidade", DateTime.Now);

            empresaCadastradaNoBancoDeDados.AdicionaDocumento(new CNPJ("12345678901234"));

            ValidadorEmpresa validador = new ValidadorEmpresa(empresaCadastradaNoBancoDeDados);

            validador.ValidarDuplicidadeCNPJDeNovaEmpresa(novaEmpresa);
        }
Ejemplo n.º 3
0
        public void Nao_Devo_Conseguir_Validar_Uma_Empresa_Em_Alteracao_Com_CNPJ_Cadastrado_Para_Outra_Empresa()
        {
            Empresa empresaEmAlteracao = EmpresaStub.GetInstance(1, "MR VIDRACARIA", DateTime.Now);

            empresaEmAlteracao.AdicionaDocumento(new CNPJ("12345678901234"));

            Empresa empresaCadastradaNoBancoDeDados = EmpresaStub.GetInstance(2, "UENP Universidade", DateTime.Now);

            empresaCadastradaNoBancoDeDados.AdicionaDocumento(new CNPJ("12345678901234"));

            ValidadorEmpresa validador = new ValidadorEmpresa(empresaCadastradaNoBancoDeDados);

            validador.ValidarDuplicidadeCNPJDeEmpresaEmAlteracao(empresaEmAlteracao);
        }
Ejemplo n.º 4
0
        public void Nao_Devo_Conseguir_Validar_Sem_Nenhum_Endereco_Comercial()
        {
            this._empresaPadrao.AdicionaDocumento(new CNPJ("12345678901234"));
            this._empresaPadrao.AdicionaTelefone(this._telefonePadrao);

            ValidadorEmpresa validador = new ValidadorEmpresa(null);

            try
            {
                validador.ValidarCamposObrigatorios(this._empresaPadrao);
            }
            catch (ExcecaoEnderecoComercialNaoInformado)
            {
                this._empresaPadrao.AdicionaEndereco(new Endereco("Rua de teste", "823", new CEP("86430-000"), CidadeStub.GetInstance(1, "SANTO ANTÔNIO DA PLATINA", EstadoStub.GetInstance(1, "PR")), TipoEndereco.Cobranca));
                validador.ValidarCamposObrigatorios(this._empresaPadrao);
            }
        }
Ejemplo n.º 5
0
        public void Nao_Devo_Conseguir_Validar_Sem_Nenhum_CNPJ_Adicionado()
        {
            this._empresaPadrao.AdicionaTelefone(this._telefonePadrao);
            this._empresaPadrao.AdicionaEndereco(this._enderecoPadrao);

            ValidadorEmpresa validador = new ValidadorEmpresa(null);

            try
            {
                validador.ValidarCamposObrigatorios(this._empresaPadrao);
            }
            catch (ExcecaoCNPJNaoInformado)
            {
                this._empresaPadrao.AdicionaDocumento(new IE("06388715907"));
                validador.ValidarCamposObrigatorios(this._empresaPadrao);
            }
        }
Ejemplo n.º 6
0
        public void Nao_Devo_Conseguir_Validar_Sem_Nenhum_Telefone_Adicionado()
        {
            this._empresaPadrao.AdicionaDocumento(new CNPJ("12345678901234"));
            this._empresaPadrao.AdicionaEndereco(this._enderecoPadrao);

            ValidadorEmpresa validador = new ValidadorEmpresa(null);

            try
            {
                validador.ValidarCamposObrigatorios(this._empresaPadrao);
            }
            catch (ExcecaoNenhumTelefoneInformado)
            {
                this._empresaPadrao.AdicionaTelefone(this._telefonePadrao);
                this._empresaPadrao.RemoveTelefone(this._telefonePadrao);
                validador.ValidarCamposObrigatorios(this._empresaPadrao);
            }
        }
Ejemplo n.º 7
0
        public Boolean Gravar(DTOPessoa dtoEmpresaQueVaiSerPersistida)
        {
            if (dtoEmpresaQueVaiSerPersistida == null)
            {
                return(false);
            }

            Pessoa pessoa = this._repositorio.Obter(dtoEmpresaQueVaiSerPersistida.ID);

            if (pessoa == null)
            {
                pessoa = new Empresa(dtoEmpresaQueVaiSerPersistida.Nome, dtoEmpresaQueVaiSerPersistida.DtNascimento);
            }
            else
            {
                pessoa.Nome         = dtoEmpresaQueVaiSerPersistida.Nome;
                pessoa.DtNascimento = dtoEmpresaQueVaiSerPersistida.DtNascimento;
            }

            pessoa.LimparColecoes();
            foreach (DTODocumento dto in dtoEmpresaQueVaiSerPersistida.Documentos)
            {
                pessoa.AdicionaDocumento(dto.ConverteDTOParaDocumento());
            }

            foreach (DTOTelefone dto in dtoEmpresaQueVaiSerPersistida.Telefones)
            {
                pessoa.AdicionaTelefone(dto.ConverteDTOParaTelefone());
            }

            foreach (DTOEndereco dto in dtoEmpresaQueVaiSerPersistida.Enderecos)
            {
                pessoa.AdicionaEndereco(dto.ConverteDTOParaEndereco(x => this._repositorioCidade.Obter(x.ID)));
            }

            DTODocumento dtoDocumento = dtoEmpresaQueVaiSerPersistida.Documentos.SingleOrDefault(d => (d.TipoDocumento.Equals(TipoDocumento.CNPJ)));
            CNPJ         cnpj;

            try
            {
                cnpj = dtoDocumento.ValorDocumento;
            }
            catch (NullReferenceException)
            {
                cnpj = null;
            }

            Pessoa  pessoaComOMesmoCNPJ = this._repositorio.ObterPorDocumento(cnpj);
            Empresa empresaEncontradaNoBD;

            if (pessoaComOMesmoCNPJ != null)
            {
                empresaEncontradaNoBD = (Empresa)pessoaComOMesmoCNPJ;
            }
            else
            {
                empresaEncontradaNoBD = null;
            }

            // Efetuando as validações
            ValidadorEmpresa validador = new ValidadorEmpresa(empresaEncontradaNoBD);

            Empresa empresaQueVaiSerPersistida = (Empresa)pessoa;

            validador.ValidarCamposObrigatorios(empresaQueVaiSerPersistida);

            if (dtoEmpresaQueVaiSerPersistida.IsNovo())
            {
                validador.ValidarDuplicidadeCNPJDeNovaEmpresa(empresaQueVaiSerPersistida);
            }
            else
            {
                validador.ValidarDuplicidadeCNPJDeEmpresaEmAlteracao(empresaQueVaiSerPersistida);
            }

            this._repositorio.Salvar(pessoa);
            dtoEmpresaQueVaiSerPersistida.ID = pessoa.Id;;

            return(true);
        }