35 lines
1.2 KiB
PHP
35 lines
1.2 KiB
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace Domovoy\Tests\Controllers;
|
|
|
|
use Domovoy\Controllers\NetworkRangeController;
|
|
use Domovoy\Repositories\NetworkRangeRepository;
|
|
use PHPUnit\Framework\TestCase;
|
|
|
|
final class NetworkRangeControllerTest extends TestCase
|
|
{
|
|
public function testPrivateIpv4RangesAreAllowedAndPublicRangesAreRejected(): void
|
|
{
|
|
$controller = new NetworkRangeController(new NoopNetworkRangeRepository());
|
|
$method = new \ReflectionMethod(NetworkRangeController::class, 'isValidCidr');
|
|
$method->setAccessible(true);
|
|
|
|
self::assertTrue($method->invoke($controller, '10.0.0.0/8'));
|
|
self::assertTrue($method->invoke($controller, '172.16.0.0/12'));
|
|
self::assertTrue($method->invoke($controller, '192.168.1.1/32'));
|
|
self::assertTrue($method->invoke($controller, '169.254.10.20/32'));
|
|
self::assertTrue($method->invoke($controller, '127.0.0.1/32'));
|
|
self::assertFalse($method->invoke($controller, '8.8.8.8/32'));
|
|
self::assertFalse($method->invoke($controller, '1.1.1.0/24'));
|
|
}
|
|
}
|
|
|
|
final class NoopNetworkRangeRepository extends NetworkRangeRepository
|
|
{
|
|
public function __construct()
|
|
{
|
|
}
|
|
}
|