File tree Expand file tree Collapse file tree
tests/NetDevPack.Brasil.Tests Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -11,7 +11,7 @@ public class Cnpj
1111
1212 public Cnpj ( string numero )
1313 {
14- Numero = numero . OnlyNumbers ( numero ) ;
14+ Numero = numero . OnlyNumbers ( ) ;
1515 if ( ! EstaValido ( ) ) throw new DomainException ( "CNPJ Invalido" ) ;
1616 }
1717
Original file line number Diff line number Diff line change @@ -11,7 +11,7 @@ public class Cpf
1111
1212 public Cpf ( string numero )
1313 {
14- Numero = numero . OnlyNumbers ( numero ) ;
14+ Numero = numero . OnlyNumbers ( ) ;
1515 if ( ! EstaValido ( ) ) throw new DomainException ( "CPF Invalido" ) ;
1616 }
1717
Original file line number Diff line number Diff line change 1- using System . Collections . Generic ;
2- using NetDevPack . Utilities ;
1+ using NetDevPack . Utilities ;
2+ using System . Collections . Generic ;
33
44namespace NetDevPack . Brasil . Documentos . Validacao
55{
@@ -21,7 +21,7 @@ public class CnpjValidador
2121 "99999999999999"
2222 } ;
2323
24- public CnpjValidador ( string cnpj ) => _cpnjTratado = cnpj . OnlyNumbers ( cnpj ) ;
24+ public CnpjValidador ( string cnpj ) => _cpnjTratado = cnpj . OnlyNumbers ( ) ;
2525
2626 public bool EstaValido ( )
2727 {
Original file line number Diff line number Diff line change 1- using System . Collections . Generic ;
2- using NetDevPack . Utilities ;
1+ using NetDevPack . Utilities ;
2+ using System . Collections . Generic ;
33
44namespace NetDevPack . Brasil . Documentos . Validacao
55{
@@ -21,7 +21,7 @@ public class CpfValidador
2121 "99999999999"
2222 } ;
2323
24- public CpfValidador ( string numero ) => _cpfTratado = numero . OnlyNumbers ( numero ) ;
24+ public CpfValidador ( string numero ) => _cpfTratado = numero . OnlyNumbers ( ) ;
2525
2626 public bool EstaValido ( )
2727 {
Original file line number Diff line number Diff line change 1- using System ;
2- using NetDevPack . Brasil . Localizacao . Validacao ;
1+ using NetDevPack . Brasil . Localizacao . Validacao ;
32using NetDevPack . Domain ;
4- using NetDevPack . Utilities ;
3+ using System ;
54
65namespace NetDevPack . Brasil . Localizacao
76{
@@ -63,13 +62,10 @@ public class Cep : IEquatable<Cep>
6362 /// <exception cref="DomainException">CEP (Código de Endereçamento Postal) inválido.</exception>
6463 public Cep ( string codigo )
6564 {
66- Codigo = codigo ? . OnlyNumbers ( codigo ) ;
67- _validador = new CepValidador ( Codigo ) ;
68- if ( ! EstaValido ( ) )
69- {
70- throw new DomainException ( "CEP Inválido" ) ;
71- }
72- PreencherEstrutura ( ) ;
65+ Codigo = codigo ;
66+ _validador = new CepValidador ( codigo ) ;
67+ if ( EstaValido ( ) )
68+ PreencherEstrutura ( ) ;
7369 }
7470
7571 /// <inheritdoc/>
Original file line number Diff line number Diff line change 11using NetDevPack . Utilities ;
2+ using System . Text . RegularExpressions ;
23
34namespace NetDevPack . Brasil . Localizacao . Validacao
45{
@@ -16,19 +17,27 @@ public class CepValidador
1617 /// </summary>
1718 private readonly string _cepTratado ;
1819
20+ private readonly string _cepOriginal ;
21+
22+ private readonly Regex _formatoEsperado = new Regex ( @"^(\d{5}-\d{3})|(\d{8})$" , RegexOptions . Compiled ) ;
23+
1924 /// <summary>
2025 /// Inicializa uma instância da classe <see cref="CepValidador"/>.
2126 /// </summary>
2227 /// <param name="codigo">O CEP (Código de Endereçamento Postal).</param>
23- public CepValidador ( string codigo ) => _cepTratado = codigo . OnlyNumbers ( codigo ) ;
28+ public CepValidador ( string codigo )
29+ {
30+ _cepTratado = codigo . OnlyNumbers ( ) ;
31+ _cepOriginal = codigo ;
32+ }
2433
2534 /// <summary>
2635 /// Verifica se o CEP atende o critério de tamanho definido.
2736 /// </summary>
2837 /// <returns><see cref="true"/> se o CEP atende o critério de tamanho definido; caso contrário, <see cref="false"/>.</returns>
2938 public bool EstaValido ( )
3039 {
31- return PossuiTamanhoValido ( ) ;
40+ return PossuiTamanhoValido ( ) && _formatoEsperado . IsMatch ( _cepOriginal ) ;
3241 }
3342
3443 /// <summary>
Original file line number Diff line number Diff line change 1818 </PropertyGroup >
1919
2020 <ItemGroup >
21- <PackageReference Include =" NetDevPack" Version =" 5.0.3 " />
21+ <PackageReference Include =" NetDevPack" Version =" 5.1.1 " />
2222 </ItemGroup >
2323
2424 <ItemGroup >
Original file line number Diff line number Diff line change 1+ using FluentAssertions ;
2+ using NetDevPack . Brasil . Localizacao ;
3+ using Xunit ;
4+
5+ namespace NetDevPack . Brasil . Tests . Localizacao
6+ {
7+ public class CepTests
8+ {
9+
10+ [ Theory ]
11+ [ InlineData ( "87970-000" ) ]
12+ [ InlineData ( "86039-215" ) ]
13+ [ InlineData ( "01000-000" ) ]
14+ [ InlineData ( "01000000" ) ]
15+ [ InlineData ( "87970000" ) ]
16+ [ InlineData ( "86039215" ) ]
17+ public void Should_Validate_Ceps ( string codigo )
18+ {
19+ var cep = new Cep ( codigo ) ;
20+ cep . EstaValido ( ) . Should ( ) . BeTrue ( ) ;
21+ }
22+
23+ [ Theory ]
24+ [ InlineData ( "87970O00" ) ]
25+ [ InlineData ( "860321o5" ) ]
26+ [ InlineData ( "0100000" ) ]
27+ [ InlineData ( "01-00000" ) ]
28+ [ InlineData ( "879aoe700^0-0" ) ]
29+ [ InlineData ( "8603a9215" ) ]
30+ public void Should_Not_Validate_Ceps ( string codigo )
31+ {
32+ var cep = new Cep ( codigo ) ;
33+ cep . EstaValido ( ) . Should ( ) . BeFalse ( ) ;
34+ }
35+ }
36+ }
Original file line number Diff line number Diff line change 1- <Project Sdk =" Microsoft.NET.Sdk" >
1+ <Project Sdk =" Microsoft.NET.Sdk" >
22
33 <PropertyGroup >
44 <TargetFramework >net5.0</TargetFramework >
You can’t perform that action at this time.
0 commit comments