1
0

MaxMindRecordAdapterTest.php 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. <?php
  2. declare(strict_types=1);
  3. namespace App\Tests\Unit\Enrichment;
  4. use App\Infrastructure\Enrichment\MaxMindRecordAdapter;
  5. use PHPUnit\Framework\TestCase;
  6. final class MaxMindRecordAdapterTest extends TestCase
  7. {
  8. public function testCountryNested(): void
  9. {
  10. $adapter = new MaxMindRecordAdapter();
  11. $record = ['country' => ['iso_code' => 'gb', 'names' => ['en' => 'United Kingdom']]];
  12. self::assertSame('GB', $adapter->extractCountryCode($record));
  13. }
  14. public function testCountryMissingReturnsNull(): void
  15. {
  16. $adapter = new MaxMindRecordAdapter();
  17. self::assertNull($adapter->extractCountryCode([]));
  18. self::assertNull($adapter->extractCountryCode(['country' => null]));
  19. self::assertNull($adapter->extractCountryCode(['country' => ['names' => ['en' => 'X']]]));
  20. }
  21. public function testAsn(): void
  22. {
  23. $adapter = new MaxMindRecordAdapter();
  24. self::assertSame(13335, $adapter->extractAsn(['autonomous_system_number' => 13335]));
  25. self::assertSame(13335, $adapter->extractAsn(['autonomous_system_number' => '13335']));
  26. self::assertNull($adapter->extractAsn([]));
  27. self::assertNull($adapter->extractAsn(['autonomous_system_number' => 'AS13335']));
  28. }
  29. public function testAsOrg(): void
  30. {
  31. $adapter = new MaxMindRecordAdapter();
  32. self::assertSame(
  33. 'Cloudflare, Inc.',
  34. $adapter->extractAsOrg(['autonomous_system_organization' => 'Cloudflare, Inc.']),
  35. );
  36. self::assertNull($adapter->extractAsOrg([]));
  37. self::assertNull($adapter->extractAsOrg(['autonomous_system_organization' => '']));
  38. }
  39. }