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

namespace PhpParser;

class 
ErrorTest extends PHPUnit_Framework_TestCase
{
    public function 
testConstruct() {
        
$attributes = array(
            
'startLine' => 10,
            
'endLine' => 11,
        );
        
$error = new Error('Some error'$attributes);

        
$this->assertSame('Some error'$error->getRawMessage());
        
$this->assertSame($attributes$error->getAttributes());
        
$this->assertSame(10$error->getStartLine());
        
$this->assertSame(11$error->getEndLine());
        
$this->assertSame(10$error->getRawLine());
        
$this->assertSame('Some error on line 10'$error->getMessage());

        return 
$error;
    }

    
/**
     * @depends testConstruct
     */
    
public function testSetMessageAndLine(Error $error) {
        
$error->setRawMessage('Some other error');
        
$this->assertSame('Some other error'$error->getRawMessage());

        
$error->setStartLine(15);
        
$this->assertSame(15$error->getStartLine());
        
$this->assertSame('Some other error on line 15'$error->getMessage());

        
$error->setRawLine(17);
        
$this->assertSame(17$error->getRawLine());
        
$this->assertSame('Some other error on line 17'$error->getMessage());
    }

    public function 
testUnknownLine() {
        
$error = new Error('Some error');

        
$this->assertSame(-1$error->getStartLine());
        
$this->assertSame(-1$error->getEndLine());
        
$this->assertSame(-1$error->getRawLine());
        
$this->assertSame('Some error on unknown line'$error->getMessage());
    }

    
/** @dataProvider provideTestColumnInfo */
    
public function testColumnInfo($code$startPos$endPos$startColumn$endColumn) {
        
$error = new Error('Some error', array(
            
'startFilePos' => $startPos,
            
'endFilePos' => $endPos,
        ));

        
$this->assertSame(true$error->hasColumnInfo());
        
$this->assertSame($startColumn$error->getStartColumn($code));
        
$this->assertSame($endColumn$error->getEndColumn($code));

    }

    public function 
provideTestColumnInfo() {
        return array(
            
// Error at "bar"
            
array("<?php foo bar baz"10121113),
            array(
"<?phpnfoo bar baz"101257),
            array(
"<?php foonbar baz"101213),
            array(
"<?php foo barnbaz"10121113),
            array(
"<?phprnfoo bar baz"111357),
            
// Error at "baz"
            
array("<?php foo bar baz"14161517),
            array(
"<?php foo barnbaz"141613),
            
// Error at string literal
            
array("<?php foo 'barnbaz' xyz"1018114),
            array(
"<?phpnfoo 'barnbaz' xyz"101854),
            array(
"<?php foon'nbarbazn'nxyz"101911),
            
// Error over full string
            
array("<?php"0415),
            array(
"<?nphp"0513),
        );
    }

    public function 
testNoColumnInfo() {
        
$error = new Error('Some error'3);

        
$this->assertSame(false$error->hasColumnInfo());
        try {
            
$error->getStartColumn('');
            
$this->fail('Expected RuntimeException');
        } catch (
RuntimeException $e) {
            
$this->assertSame('Error does not have column information'$e->getMessage());
        }
        try {
            
$error->getEndColumn('');
            
$this->fail('Expected RuntimeException');
        } catch (
RuntimeException $e) {
            
$this->assertSame('Error does not have column information'$e->getMessage());
        }
    }

    
/**
     * @expectedException RuntimeException
     * @expectedExceptionMessage Invalid position information
     */
    
public function testInvalidPosInfo() {
        
$error = new Error('Some error', array(
            
'startFilePos' => 10,
            
'endFilePos' => 11,
        ));
        
$error->getStartColumn('code');
    }
}
Онлайн: 0
Реклама