gluon-web-remote

Web remote Administration for big size of gluon routers
git clone git://archive.git.mtrnord.blog/MTRNord/gluon-web-remote.git
Log | Files | Refs | README

ClosureTest.php (5092B)


      1 <?php
      2 /**
      3  * php-token-stream
      4  *
      5  * Copyright (c) 2009-2013, Sebastian Bergmann <sebastian@phpunit.de>.
      6  * All rights reserved.
      7  *
      8  * Redistribution and use in source and binary forms, with or without
      9  * modification, are permitted provided that the following conditions
     10  * are met:
     11  *
     12  *   * Redistributions of source code must retain the above copyright
     13  *     notice, this list of conditions and the following disclaimer.
     14  *
     15  *   * Redistributions in binary form must reproduce the above copyright
     16  *     notice, this list of conditions and the following disclaimer in
     17  *     the documentation and/or other materials provided with the
     18  *     distribution.
     19  *
     20  *   * Neither the name of Sebastian Bergmann nor the names of his
     21  *     contributors may be used to endorse or promote products derived
     22  *     from this software without specific prior written permission.
     23  *
     24  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
     25  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
     26  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
     27  * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
     28  * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
     29  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
     30  * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
     31  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
     32  * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
     33  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
     34  * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
     35  * POSSIBILITY OF SUCH DAMAGE.
     36  *
     37  * @package    PHP_TokenStream
     38  * @subpackage Tests
     39  * @author     Sebastian Bergmann <sebastian@phpunit.de>
     40  * @copyright  2009-2013 Sebastian Bergmann <sebastian@phpunit.de>
     41  * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
     42  * @since      File available since Release 1.0.0
     43  */
     44 
     45 if (!defined('TEST_FILES_PATH')) {
     46     define(
     47       'TEST_FILES_PATH',
     48       dirname(dirname(__FILE__)) . DIRECTORY_SEPARATOR .
     49       '_files' . DIRECTORY_SEPARATOR
     50     );
     51 }
     52 
     53 require_once 'PHP/Token/Stream.php';
     54 
     55 /**
     56  * Tests for the PHP_Token_FUNCTION class.
     57  *
     58  * @package    PHP_TokenStream
     59  * @subpackage Tests
     60  * @author     Sebastian Bergmann <sebastian@phpunit.de>
     61  * @copyright  2009-2013 Sebastian Bergmann <sebastian@phpunit.de>
     62  * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
     63  * @version    Release: @package_version@
     64  * @link       http://github.com/sebastianbergmann/php-token-stream/
     65  * @since      Class available since Release 1.0.0
     66  */
     67 class PHP_Token_ClosureTest extends PHPUnit_Framework_TestCase
     68 {
     69     protected $functions;
     70 
     71     protected function setUp()
     72     {
     73         $ts = new PHP_Token_Stream(TEST_FILES_PATH . 'closure.php');
     74 
     75         foreach ($ts as $token) {
     76             if ($token instanceof PHP_Token_FUNCTION) {
     77                 $this->functions[] = $token;
     78             }
     79         }
     80     }
     81 
     82     /**
     83      * @covers PHP_Token_FUNCTION::getArguments
     84      */
     85     public function testGetArguments()
     86     {
     87         $this->assertEquals(array('$foo' => null, '$bar' => null), $this->functions[0]->getArguments());
     88         $this->assertEquals(array('$foo' => 'Foo', '$bar' => null), $this->functions[1]->getArguments());
     89         $this->assertEquals(array('$foo' => null, '$bar' => null, '$baz' => null), $this->functions[2]->getArguments());
     90         $this->assertEquals(array('$foo' => 'Foo', '$bar' => null, '$baz' => null), $this->functions[3]->getArguments());
     91         $this->assertEquals(array(), $this->functions[4]->getArguments());
     92         $this->assertEquals(array(), $this->functions[5]->getArguments());
     93     }
     94 
     95     /**
     96      * @covers PHP_Token_FUNCTION::getName
     97      */
     98     public function testGetName()
     99     {
    100         $this->assertEquals('anonymous function', $this->functions[0]->getName());
    101         $this->assertEquals('anonymous function', $this->functions[1]->getName());
    102         $this->assertEquals('anonymous function', $this->functions[2]->getName());
    103         $this->assertEquals('anonymous function', $this->functions[3]->getName());
    104         $this->assertEquals('anonymous function', $this->functions[4]->getName());
    105         $this->assertEquals('anonymous function', $this->functions[5]->getName());
    106     }
    107 
    108     /**
    109      * @covers PHP_Token::getLine
    110      */
    111     public function testGetLine()
    112     {
    113         $this->assertEquals(2, $this->functions[0]->getLine());
    114         $this->assertEquals(3, $this->functions[1]->getLine());
    115         $this->assertEquals(4, $this->functions[2]->getLine());
    116         $this->assertEquals(5, $this->functions[3]->getLine());
    117     }
    118 
    119     /**
    120      * @covers PHP_TokenWithScope::getEndLine
    121      */
    122     public function testGetEndLine()
    123     {
    124         $this->assertEquals(2, $this->functions[0]->getLine());
    125         $this->assertEquals(3, $this->functions[1]->getLine());
    126         $this->assertEquals(4, $this->functions[2]->getLine());
    127         $this->assertEquals(5, $this->functions[3]->getLine());
    128     }
    129 }