Skip to content

Commit 097041b

Browse files
committed
Merge branch 'master' of github.com:padosoft/support
2 parents ac1d879 + bfbe88b commit 097041b

3 files changed

Lines changed: 44 additions & 38 deletions

File tree

src/validation.php

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,10 @@ function isIntegerZero($value, $acceptIntegerFloatingPoints = false, $acceptSign
9797
*/
9898
function isInteger($value, $unsigned = true, $acceptIntegerFloatingPoints = false): bool
9999
{
100+
if (isNullOrEmpty($value)) {
101+
return false;
102+
}
103+
100104
if (isStringNumberStartsWithMoreThanOneZero($value)) {
101105
return false;
102106
}
@@ -727,9 +731,10 @@ function urlW3c($check, bool $strict = false): bool
727731
* @param bool $validateOnVIES default false. if se to true, first check formal EU country algorithm,
728732
* then if it valid and country code isn't 'IT' try to check by API VIES service.
729733
* If VIES return false or soap exception was thrown, return false.
734+
* @param bool $returnValueIfViesThrownEx if VIES service thrown an exception, return this value.
730735
* @return bool
731736
*/
732-
function isEuVatNumber(string $pi, bool $validateOnVIES = false): bool
737+
function isEuVatNumber(string $pi, bool $validateOnVIES = false, bool $returnValueIfViesThrownEx = false): bool
733738
{
734739
$countryCode = getCoutryCodeByVatNumber($pi, 'IT');
735740

@@ -748,8 +753,8 @@ function isEuVatNumber(string $pi, bool $validateOnVIES = false): bool
748753
//check vies
749754
try {
750755
return isVATRegisteredInVies($pi);
751-
} catch (SoapFault $e) {
752-
return false;
756+
} catch (\Throwable $e) {
757+
return $returnValueIfViesThrownEx;
753758
}
754759
}
755760

tests/ValidationDataProvider.php

Lines changed: 24 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1606,30 +1606,30 @@ public function isHostnameProvider()
16061606
public function isEuVatNumberProvider()
16071607
{
16081608
return [
1609-
'"", false' => ['', false, false],
1610-
'"", true' => ['', true, false],
1611-
'" ", false ' => [' ', false, false],
1612-
'" ", true' => [' ', true, false],
1613-
'null, false' => [null, false, 'TypeError'],
1614-
'null, true' => [null, true, 'TypeError'],
1615-
'00000000000, false' => ['00000000000', false, true],
1616-
'00000000000, true' => ['00000000000', true, true],
1617-
'IT00000000000, false' => ['IT00000000000', false, true],
1618-
'IT00000000000, true' => ['IT00000000000', true, true],
1619-
'02361141209, false' => ['02361141209', false, true],
1620-
'02361141209, true' => ['02361141209', true, true],
1621-
'IT02361141209, false' => ['IT02361141209', false, true],
1622-
'IT02361141209, true' => ['IT02361141209', true, true],
1623-
'00000000001, false' => ['00000000001', false, false],
1624-
'00000000001, true' => ['00000000001', true, false],
1625-
'IT00000000001, false' => ['IT00000000001', false, false],
1626-
'IT00000000001, true' => ['IT00000000001', true, false],
1627-
'DE00000000001, false' => ['DE00000000001', false, true],//finchè non c'è un validatore per ogni stato se passo un vat estero e non valido via vies torna true
1628-
'DE00000000001, true' => ['DE00000000001', true, false],
1629-
'0, false' => ['0', false, false],
1630-
'0, true' => ['0', true, false],
1631-
'123456789012345678990, false' => ['123456789012345678990', false, false],
1632-
'123456789012345678990, true' => ['123456789012345678990', true, false],
1609+
'"", false, false' => ['', false, false, false],
1610+
'"", true, false' => ['', true, false, false],
1611+
'" ", false, false' => [' ', false, false, false],
1612+
'" ", true, false' => [' ', true, false, false],
1613+
'null, false, false' => [null, false, 'TypeError', false],
1614+
'null, true, false' => [null, true, 'TypeError', false],
1615+
'00000000000, false, false' => ['00000000000', false, true, false],
1616+
'00000000000, true, false' => ['00000000000', true, true, false],
1617+
'IT00000000000, false, false' => ['IT00000000000', false, true, false],
1618+
'IT00000000000, true, false' => ['IT00000000000', true, true, false],
1619+
'02361141209, false, false' => ['02361141209', false, true, false],
1620+
'02361141209, true, false' => ['02361141209', true, true, false],
1621+
'IT02361141209, false, false' => ['IT02361141209', false, true, false],
1622+
'IT02361141209, true, false' => ['IT02361141209', true, true, false],
1623+
'00000000001, false, false' => ['00000000001', false, false, false],
1624+
'00000000001, true, false' => ['00000000001', true, false, false],
1625+
'IT00000000001, false, false' => ['IT00000000001', false, false, false],
1626+
'IT00000000001, true, false' => ['IT00000000001', true, false, false],
1627+
'DE00000000001, false, false' => ['DE00000000001', false, true, false],//finchè non c'è un validatore per ogni stato se passo un vat estero e non valido via vies torna true
1628+
'DE00000000001, true, false' => ['DE00000000001', true, false, false],
1629+
'0, false, false' => ['0', false, false, false],
1630+
'0, true, false' => ['0', true, false, false],
1631+
'123456789012345678990, false, false' => ['123456789012345678990', false, false, false],
1632+
'123456789012345678990, true, false' => ['123456789012345678990', true, false, false],
16331633
];
16341634
}
16351635

tests/ValidationTest.php

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -570,36 +570,37 @@ public function isCfTest($val, $expected)
570570
/**
571571
* @test
572572
* @param $val
573-
* @param $validateOnVies
574573
* @param $expected
575-
* @dataProvider isEuVatNumberProvider
574+
* @dataProvider isITVatProvider
576575
*/
577-
public function isEuVatNumberTest($val, $validateOnVies, $expected)
576+
public function isITVatTest($val, $expected)
578577
{
579578
if ($this->expectedIsAnException($expected)) {
580579
$this->expectException($expected);
581-
isEuVatNumber($val, $validateOnVies);
580+
isITVat($val);
582581
} else {
583-
$this->assertEquals($expected, isEuVatNumber($val, $validateOnVies));
582+
$result = isITVat($val);
583+
$this->assertEquals($expected, $result);
584584
}
585585
}
586586

587587

588588
/**
589589
* @test
590590
* @param $val
591+
* @param $validateOnVies
592+
* @param $returnValueIfViesThrownEx
591593
* @param $expected
592-
* @dataProvider isITVatProvider
594+
* @dataProvider isEuVatNumberProvider
593595
*/
594-
public function isITVatTest($val, $expected)
596+
public function isEuVatNumberTest($val, $validateOnVies, $expected, $returnValueIfViesThrownEx)
595597
{
596598
if ($this->expectedIsAnException($expected)) {
597599
$this->expectException($expected);
598-
isITVat($val);
599-
} else {
600-
$result = isITVat($val);
601-
$this->assertEquals($expected, $result);
600+
isEuVatNumber($val, $validateOnVies, $returnValueIfViesThrownEx);
601+
return;
602602
}
603+
$this->assertEquals($expected, isEuVatNumber($val, $validateOnVies, $returnValueIfViesThrownEx));
603604
}
604605

605606
/**

0 commit comments

Comments
 (0)