Вход Регистрация
Файл: gapps/vendor/nikic/php-parser/test/PhpParser/Node/NameTest.php
Строк: 190
<?php

namespace PhpParserNode;

class 
NameTest extends PHPUnit_Framework_TestCase
{
    public function 
testConstruct() {
        
$name = new Name(array('foo''bar'));
        
$this->assertSame(array('foo''bar'), $name->parts);

        
$name = new Name('foobar');
        
$this->assertSame(array('foo''bar'), $name->parts);
    }

    public function 
testGet() {
        
$name = new Name('foo');
        
$this->assertSame('foo'$name->getFirst());
        
$this->assertSame('foo'$name->getLast());

        
$name = new Name('foobar');
        
$this->assertSame('foo'$name->getFirst());
        
$this->assertSame('bar'$name->getLast());
    }

    public function 
testToString() {
        
$name = new Name('foobar');

        
$this->assertSame('foobar', (string) $name);
        
$this->assertSame('foobar'$name->toString());
        
$this->assertSame('foo_bar'$name->toString('_'));
    }

    public function 
testSet() {
        
$name = new Name('foo');

        
$name->set('foobar');
        
$this->assertSame('foobar'$name->toString());

        
$name->set(array('foo''bar'));
        
$this->assertSame('foobar'$name->toString());

        
$name->set(new Name('foobar'));
        
$this->assertSame('foobar'$name->toString());
    }

    public function 
testSetFirst() {
        
$name = new Name('foo');

        
$name->setFirst('bar');
        
$this->assertSame('bar'$name->toString());

        
$name->setFirst('AB');
        
$this->assertSame('AB'$name->toString());

        
$name->setFirst('C');
        
$this->assertSame('CB'$name->toString());

        
$name->setFirst('DE');
        
$this->assertSame('DEB'$name->toString());
    }

    public function 
testSetLast() {
        
$name = new Name('foo');

        
$name->setLast('bar');
        
$this->assertSame('bar'$name->toString());

        
$name->setLast('AB');
        
$this->assertSame('AB'$name->toString());

        
$name->setLast('C');
        
$this->assertSame('AC'$name->toString());

        
$name->setLast('DE');
        
$this->assertSame('ADE'$name->toString());
    }

    public function 
testAppend() {
        
$name = new Name('foo');

        
$name->append('bar');
        
$this->assertSame('foobar'$name->toString());

        
$name->append('barfoo');
        
$this->assertSame('foobarbarfoo'$name->toString());
    }

    public function 
testPrepend() {
        
$name = new Name('foo');

        
$name->prepend('bar');
        
$this->assertSame('barfoo'$name->toString());

        
$name->prepend('foobar');
        
$this->assertSame('foobarbarfoo'$name->toString());
    }

    public function 
testSlice() {
        
$name = new Name('foobar');
        
$this->assertEquals(new Name('foobar'), $name->slice(0));
        
$this->assertEquals(new Name('bar'), $name->slice(1));
        
$this->assertEquals(new Name([]), $name->slice(2));
    }

    
/**
     * @expectedException OutOfBoundsException
     * @expectedExceptionMessage Offset 4 is out of bounds
     */
    
public function testSliceException() {
        (new 
Name('foobarbaz'))->slice(4);
    }

    public function 
testConcat() {
        
$this->assertEquals(new Name('foobarbaz'), Name::concat('foo''barbaz'));
        
$this->assertEquals(
            new 
NameFullyQualified('foobar'),
            
NameFullyQualified::concat(['foo'], new Name('bar'))
        );

        
$attributes = ['foo' => 'bar'];
        
$this->assertEquals(
            new 
NameRelative('foobarbaz'$attributes),
            
NameRelative::concat(new NameFullyQualified('foobar'), 'baz'$attributes)
        );

        
$this->assertEquals(new Name('foo'), Name::concat([], 'foo'));
        
$this->assertEquals(new Name([]), Name::concat([], []));
    }

    public function 
testIs() {
        
$name = new Name('foo');
        
$this->assertTrue ($name->isUnqualified());
        
$this->assertFalse($name->isQualified());
        
$this->assertFalse($name->isFullyQualified());
        
$this->assertFalse($name->isRelative());

        
$name = new Name('foobar');
        
$this->assertFalse($name->isUnqualified());
        
$this->assertTrue ($name->isQualified());
        
$this->assertFalse($name->isFullyQualified());
        
$this->assertFalse($name->isRelative());

        
$name = new NameFullyQualified('foo');
        
$this->assertFalse($name->isUnqualified());
        
$this->assertFalse($name->isQualified());
        
$this->assertTrue ($name->isFullyQualified());
        
$this->assertFalse($name->isRelative());

        
$name = new NameRelative('foo');
        
$this->assertFalse($name->isUnqualified());
        
$this->assertFalse($name->isQualified());
        
$this->assertFalse($name->isFullyQualified());
        
$this->assertTrue ($name->isRelative());
    }

    
/**
     * @expectedException        InvalidArgumentException
     * @expectedExceptionMessage When changing a name you need to pass either a string, an array or a Name node
     */
    
public function testInvalidArg() {
        
$name = new Name('foo');
        
$name->set(new stdClass);
    }
}
Онлайн: 0
Реклама