Вход Регистрация
Файл: system/vendor/nikic/fast-route/test/RouteCollectorTest.php
Строк: 56
<?php

namespace FastRoute;

use 
PHPUnitFrameworkTestCase;

class 
RouteCollectorTest extends TestCase
{
    public function 
testShortcuts()
    {
        
$r = new DummyRouteCollector();

        
$r->delete('/delete', 'delete');
        
$r->get('/get', 'get');
        
$r->head('/head', 'head');
        
$r->patch('/patch', 'patch');
        
$r->post('/post', 'post');
        
$r->put('/put', 'put');

        
$expected = [
            [
'DELETE', '/delete', 'delete'],
            [
'GET', '/get', 'get'],
            [
'HEAD', '/head', 'head'],
            [
'PATCH', '/patch', 'patch'],
            [
'POST', '/post', 'post'],
            [
'PUT', '/put', 'put'],
        ];

        
$this->assertSame($expected, $r->routes);
    }

    public function 
testGroups()
    {
        
$r = new DummyRouteCollector();

        
$r->delete('/delete', 'delete');
        
$r->get('/get', 'get');
        
$r->head('/head', 'head');
        
$r->patch('/patch', 'patch');
        
$r->post('/post', 'post');
        
$r->put('/put', 'put');

        
$r->addGroup('/group-one', function (DummyRouteCollector $r) {
            
$r->delete('/delete', 'delete');
            
$r->get('/get', 'get');
            
$r->head('/head', 'head');
            
$r->patch('/patch', 'patch');
            
$r->post('/post', 'post');
            
$r->put('/put', 'put');

            
$r->addGroup('/group-two', function (DummyRouteCollector $r) {
                
$r->delete('/delete', 'delete');
                
$r->get('/get', 'get');
                
$r->head('/head', 'head');
                
$r->patch('/patch', 'patch');
                
$r->post('/post', 'post');
                
$r->put('/put', 'put');
            });
        });

        
$r->addGroup('/admin', function (DummyRouteCollector $r) {
            
$r->get('-some-info', 'admin-some-info');
        });
        
$r->addGroup('/admin-', function (DummyRouteCollector $r) {
            
$r->get('more-info', 'admin-more-info');
        });

        
$expected = [
            [
'DELETE', '/delete', 'delete'],
            [
'GET', '/get', 'get'],
            [
'HEAD', '/head', 'head'],
            [
'PATCH', '/patch', 'patch'],
            [
'POST', '/post', 'post'],
            [
'PUT', '/put', 'put'],
            [
'DELETE', '/group-one/delete', 'delete'],
            [
'GET', '/group-one/get', 'get'],
            [
'HEAD', '/group-one/head', 'head'],
            [
'PATCH', '/group-one/patch', 'patch'],
            [
'POST', '/group-one/post', 'post'],
            [
'PUT', '/group-one/put', 'put'],
            [
'DELETE', '/group-one/group-two/delete', 'delete'],
            [
'GET', '/group-one/group-two/get', 'get'],
            [
'HEAD', '/group-one/group-two/head', 'head'],
            [
'PATCH', '/group-one/group-two/patch', 'patch'],
            [
'POST', '/group-one/group-two/post', 'post'],
            [
'PUT', '/group-one/group-two/put', 'put'],
            [
'GET', '/admin-some-info', 'admin-some-info'],
            [
'GET', '/admin-more-info', 'admin-more-info'],
        ];

        
$this->assertSame($expected, $r->routes);
    }
}

class 
DummyRouteCollector extends RouteCollector
{
    public 
$routes = [];

    public function 
__construct()
    {
    }

    public function 
addRoute($method, $route, $handler)
    {
        
$route = $this->currentGroupPrefix . $route;
        
$this->routes[] = [$method, $route, $handler];
    }
}
Онлайн: 0
Реклама