PaymentTest.php 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. <?php
  2. namespace Faker\Test\Provider\fr_FR;
  3. use Faker\Calculator\Luhn;
  4. use Faker\Generator;
  5. use Faker\Provider\fr_FR\Payment;
  6. use PHPUnit\Framework\TestCase;
  7. class PaymentTest extends TestCase
  8. {
  9. private $faker;
  10. public function setUp()
  11. {
  12. $faker = new Generator();
  13. $faker->addProvider(new Payment($faker));
  14. $this->faker = $faker;
  15. }
  16. public function testFormattedVat()
  17. {
  18. $vat = $this->faker->vat(true);
  19. $this->assertRegExp("/^FR\s\w{2}\s\d{3}\s\d{3}\s\d{3}$/", $vat);
  20. $vat = str_replace(' ', '', $vat);
  21. $siren = substr($vat, 4, 12);
  22. $this->assertTrue(Luhn::isValid($siren));
  23. $key = (int) substr($siren, 2, 2);
  24. if ($key === 0) {
  25. $this->assertEqual($key, (12 + 3 * ($siren % 97)) % 97);
  26. }
  27. }
  28. public function testUnformattedVat()
  29. {
  30. $vat = $this->faker->vat(false);
  31. $this->assertRegExp("/^FR\w{2}\d{9}$/", $vat);
  32. $siren = substr($vat, 4, 12);
  33. $this->assertTrue(Luhn::isValid($siren));
  34. $key = (int) substr($siren, 2, 2);
  35. if ($key === 0) {
  36. $this->assertEqual($key, (12 + 3 * ($siren % 97)) % 97);
  37. }
  38. }
  39. }