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);
        }
        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);
            }
        }
        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);
            }
        }
        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);
            }
        }
        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);
        }
        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);
        }
Пример #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;
        }