caelum / caelum-stella

O Caelum Stella visa suprir as necessidades do dia a dia do desenvolvedor brasileiro
http://stella.caelum.com.br
662 stars 341 forks source link

Validação: CNPJ "00.000.000/0000-00" é válido? #185

Closed rponte closed 5 years ago

rponte commented 8 years ago

Olá,

Uma dúvida, o CNPJ 00.000.000/0000-00 deveria ser válido? A classe CNPJValidator está considerando este número como válido. Por exemplo:

@Test(expected=InvalidStateException.class)
public void naoDeveriaValidarCnpjComMultiplosZeros() {
    CNPJValidator validator = new CNPJValidator(true);
    validator.assertValid("00.000.000/0000-00");
}

@Test(expected=InvalidStateException.class)
public void naoDeveriaValidarCnpjSemMascaraComMultiplosZeros() {
    CNPJValidator validator = new CNPJValidator(false);
    validator.assertValid("00000000000000");
}

Ambos os testes acima estão dando erro! O que vocês acham?

mariofts commented 8 years ago

No CNPJ não tem a opção de ignorar repetidos, só no cpf... :-1: acho que acabou passando. Esse boolean ai pelo q vi é pra dizer se a entrada está formatada ou não.

PR?

rponte commented 8 years ago

Legal, então realmente está errado, né? Digo isso pois 11.111.111/1111-11 é inválido, somente com o zero foi que o problema ocorreu.

Vou tirar um tempinho essa semana para enviar um PR, isso claro se você não resolver antes.

edenir-anschau commented 8 years ago

Enviei um PR para essa issue: #186

odraencoded commented 8 years ago

11.111.111/1111-11 é inválido devido aos check digits já não validarem os dígitos base.

A questão é se 11.111.111/1111-80, 22.222.222/2222-59, etc. são inválidos ou não.

O CNPJ 00.000.000/0001-91 pertence ao Banco do Brasil. Como o 0001 se refere ao número da filial da empresa pode ser que não exista números de CNPJ válidos terminados em /0000 se considerarmos que 0001 é a primeira filial. Por outro lado, vai saber.

alexandrehsantos commented 4 years ago

Uma pergutna... Já tem solução pra isso?

angeliski commented 4 years ago

Olá @alexandrehsantos Essa issue foi fechada por inatividade, se vc acha q essa discussão precisa ser retomada, por favor abra uma issue nova e referêncie essa daqui.