public void Nao_Devo_Conseguir_Validar_Sem_Nenhum_CPF_Adicionado() { this._clientePadrao.AdicionaTelefone(this._telefonePadrao); this._clientePadrao.AdicionaEndereco(this._enderecoPadrao); ValidadorCliente validador = new ValidadorCliente(null); try { // Primeiro testo se não há nenhum cpf com a coleção nula validador.ValidarCamposObrigatorios(this._clientePadrao); } catch (ExcecaoCPFNaoInformado) { // Depois testo com a coleção instânciada this._clientePadrao.AdicionaDocumento(new RG("89457968")); validador.ValidarCamposObrigatorios(this._clientePadrao); } }
public void Nao_Devo_Conseguir_Validar_Sem_Nenhum_Endereco() { this._clientePadrao.AdicionaDocumento(new CPF("12345678901234")); this._clientePadrao.AdicionaTelefone(this._telefonePadrao); ValidadorCliente validador = new ValidadorCliente(null); try { validador.ValidarCamposObrigatorios(this._clientePadrao); } catch (ExcecaoNenhumEnderecoInformado) { this._clientePadrao.AdicionaEndereco(this._enderecoPadrao); this._clientePadrao.RemoveEndereco(this._enderecoPadrao); validador.ValidarCamposObrigatorios(this._clientePadrao); } }
public Boolean Gravar(DTOPessoa dtoClienteQueVaiSerPersistido) { if (dtoClienteQueVaiSerPersistido == null) return false; Pessoa pessoa = this._repositorio.Obter(dtoClienteQueVaiSerPersistido.ID); if (pessoa == null) pessoa = new Cliente(dtoClienteQueVaiSerPersistido.Nome, dtoClienteQueVaiSerPersistido.DtNascimento); else { pessoa.Nome = dtoClienteQueVaiSerPersistido.Nome; pessoa.DtNascimento = dtoClienteQueVaiSerPersistido.DtNascimento; } pessoa.LimparColecoes(); foreach (DTODocumento dto in dtoClienteQueVaiSerPersistido.Documentos) pessoa.AdicionaDocumento(dto.ConverteDTOParaDocumento()); foreach (DTOTelefone dto in dtoClienteQueVaiSerPersistido.Telefones) pessoa.AdicionaTelefone(dto.ConverteDTOParaTelefone()); foreach (DTOEndereco dto in dtoClienteQueVaiSerPersistido.Enderecos) pessoa.AdicionaEndereco(dto.ConverteDTOParaEndereco(x => this._repositorioCidade.Obter(x.ID))); DTODocumento dtoDocumento = dtoClienteQueVaiSerPersistido.Documentos.SingleOrDefault(d => (d.TipoDocumento.Equals(TipoDocumento.CPF))); CPF cpf; try { cpf = dtoDocumento.ValorDocumento; } catch (NullReferenceException) { cpf = null; } Pessoa pessoaComOMesmoCPF = this._repositorio.ObterPorDocumento(cpf); Cliente clienteEncontradoNoBD; try { if (pessoaComOMesmoCPF != null) clienteEncontradoNoBD = (Cliente)pessoaComOMesmoCPF; else clienteEncontradoNoBD = null; } catch (InvalidCastException) { clienteEncontradoNoBD = null; } // Efetuando as validações ValidadorCliente validador = new ValidadorCliente(clienteEncontradoNoBD); Cliente clienteQueVaiSerPersistido = (Cliente)pessoa; validador.ValidarCamposObrigatorios(clienteQueVaiSerPersistido); if (dtoClienteQueVaiSerPersistido.IsNovo()) validador.ValidarDuplicidadeCPFDeNovoCliente(clienteQueVaiSerPersistido); else validador.ValidarDuplicidadeCPFDeClienteEmAlteracao(clienteQueVaiSerPersistido); this._repositorio.Salvar(pessoa); dtoClienteQueVaiSerPersistido.ID = pessoa.Id; ; return true; }