Вход Регистрация
Файл: symfony-2.7/src/Symfony/Component/Security/Acl/Tests/Permission/MaskBuilderTest.php
Строк: 68
<?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 SymfonyComponentSecurityAclTestsPermission;

use 
SymfonyComponentSecurityAclPermissionMaskBuilder;

class 
MaskBuilderTest extends PHPUnit_Framework_TestCase
{
    
/**
     * @expectedException InvalidArgumentException
     * @dataProvider getInvalidConstructorData
     */
    
public function testConstructorWithNonInteger($invalidMask)
    {
        new 
MaskBuilder($invalidMask);
    }

    public function 
getInvalidConstructorData()
    {
        return array(
            array(
234.463),
            array(
'asdgasdf'),
            array(array()),
            array(new 
stdClass()),
        );
    }

    public function 
testConstructorWithoutArguments()
    {
        
$builder = new MaskBuilder();

        
$this->assertEquals(0$builder->get());
    }

    public function 
testConstructor()
    {
        
$builder = new MaskBuilder(123456);

        
$this->assertEquals(123456$builder->get());
    }

    public function 
testAddAndRemove()
    {
        
$builder = new MaskBuilder();

        
$builder
            
->add('view')
            ->
add('eDiT')
            ->
add('ownEr')
        ;
        
$mask $builder->get();

        
$this->assertEquals(MaskBuilder::MASK_VIEW$mask MaskBuilder::MASK_VIEW);
        
$this->assertEquals(MaskBuilder::MASK_EDIT$mask MaskBuilder::MASK_EDIT);
        
$this->assertEquals(MaskBuilder::MASK_OWNER$mask MaskBuilder::MASK_OWNER);
        
$this->assertEquals(0$mask MaskBuilder::MASK_MASTER);
        
$this->assertEquals(0$mask MaskBuilder::MASK_CREATE);
        
$this->assertEquals(0$mask MaskBuilder::MASK_DELETE);
        
$this->assertEquals(0$mask MaskBuilder::MASK_UNDELETE);

        
$builder->remove('edit')->remove('OWner');
        
$mask $builder->get();
        
$this->assertEquals(0$mask MaskBuilder::MASK_EDIT);
        
$this->assertEquals(0$mask MaskBuilder::MASK_OWNER);
        
$this->assertEquals(MaskBuilder::MASK_VIEW$mask MaskBuilder::MASK_VIEW);
    }

    public function 
testGetPattern()
    {
        
$builder = new MaskBuilder();
        
$this->assertEquals(MaskBuilder::ALL_OFF$builder->getPattern());

        
$builder->add('view');
        
$this->assertEquals(str_repeat('.'31).'V'$builder->getPattern());

        
$builder->add('owner');
        
$this->assertEquals(str_repeat('.'24).'N......V'$builder->getPattern());

        
$builder->add(<< 10);
        
$this->assertEquals(str_repeat('.'21).MaskBuilder::ON.'..N......V'$builder->getPattern());
    }

    public function 
testReset()
    {
        
$builder = new MaskBuilder();
        
$this->assertEquals(0$builder->get());

        
$builder->add('view');
        
$this->assertTrue($builder->get() > 0);

        
$builder->reset();
        
$this->assertEquals(0$builder->get());
    }
}
Онлайн: 2
Реклама