Вход Регистрация
Файл: symfony-2.7/src/Symfony/Component/Finder/Tests/Expression/RegexTest.php
Строк: 94
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace SymfonyComponentFinderTestsExpression;

use 
SymfonyComponentFinderExpressionExpression;

class 
RegexTest extends PHPUnit_Framework_TestCase
{
    
/**
     * @dataProvider getHasFlagsData
     */
    
public function testHasFlags($regex$start$end)
    {
        
$expr = new Expression($regex);

        
$this->assertEquals($start$expr->getRegex()->hasStartFlag());
        
$this->assertEquals($end$expr->getRegex()->hasEndFlag());
    }

    
/**
     * @dataProvider getHasJokersData
     */
    
public function testHasJokers($regex$start$end)
    {
        
$expr = new Expression($regex);

        
$this->assertEquals($start$expr->getRegex()->hasStartJoker());
        
$this->assertEquals($end$expr->getRegex()->hasEndJoker());
    }

    
/**
     * @dataProvider getSetFlagsData
     */
    
public function testSetFlags($regex$start$end$expected)
    {
        
$expr = new Expression($regex);
        
$expr->getRegex()->setStartFlag($start)->setEndFlag($end);

        
$this->assertEquals($expected$expr->render());
    }

    
/**
     * @dataProvider getSetJokersData
     */
    
public function testSetJokers($regex$start$end$expected)
    {
        
$expr = new Expression($regex);
        
$expr->getRegex()->setStartJoker($start)->setEndJoker($end);

        
$this->assertEquals($expected$expr->render());
    }

    public function 
testOptions()
    {
        
$expr = new Expression('~abc~is');
        
$expr->getRegex()->removeOption('i')->addOption('m');

        
$this->assertEquals('~abc~sm'$expr->render());
    }

    public function 
testMixFlagsAndJokers()
    {
        
$expr = new Expression('~^.*abc.*$~is');

        
$expr->getRegex()->setStartFlag(false)->setEndFlag(false)->setStartJoker(false)->setEndJoker(false);
        
$this->assertEquals('~abc~is'$expr->render());

        
$expr->getRegex()->setStartFlag(true)->setEndFlag(true)->setStartJoker(true)->setEndJoker(true);
        
$this->assertEquals('~^.*abc.*$~is'$expr->render());
    }

    
/**
     * @dataProvider getReplaceJokersTestData
     */
    
public function testReplaceJokers($regex$expected)
    {
        
$expr = new Expression($regex);
        
$expr $expr->getRegex()->replaceJokers('@');

        
$this->assertEquals($expected$expr->renderPattern());
    }

    public function 
getHasFlagsData()
    {
        return array(
            array(
'~^abc~'truefalse),
            array(
'~abc$~'falsetrue),
            array(
'~abc~'falsefalse),
            array(
'~^abc$~'truetrue),
            array(
'~^abc\$~'truefalse),
        );
    }

    public function 
getHasJokersData()
    {
        return array(
            array(
'~.*abc~'truefalse),
            array(
'~abc.*~'falsetrue),
            array(
'~abc~'falsefalse),
            array(
'~.*abc.*~'truetrue),
            array(
'~.*abc\.*~'truefalse),
        );
    }

    public function 
getSetFlagsData()
    {
        return array(
            array(
'~abc~'truefalse'~^abc~'),
            array(
'~abc~'falsetrue'~abc$~'),
            array(
'~abc~'falsefalse'~abc~'),
            array(
'~abc~'truetrue'~^abc$~'),
        );
    }

    public function 
getSetJokersData()
    {
        return array(
            array(
'~abc~'truefalse'~.*abc~'),
            array(
'~abc~'falsetrue'~abc.*~'),
            array(
'~abc~'falsefalse'~abc~'),
            array(
'~abc~'truetrue'~.*abc.*~'),
        );
    }

    public function 
getReplaceJokersTestData()
    {
        return array(
            array(
'~.abc~''@abc'),
            array(
'~\.abc~''\.abc'),
            array(
'~\\.abc~''\\@abc'),
            array(
'~\\\.abc~''\\\.abc'),
        );
    }
}
Онлайн: 2
Реклама