domovoy/tests/Controllers/NetworkRangeControllerTest.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()
{
}
}