Seditio Source
Root |
./othercms/croogo-4.0.7/vendor/squizlabs/php_codesniffer/tests/Core/Sniffs/AbstractArraySniffTest.php
<?php
/**
 * Tests for the \PHP_CodeSniffer\Sniffs\AbstractArraySniff.
 *
 * @author    Greg Sherwood <gsherwood@squiz.net>
 * @copyright 2006-2020 Squiz Pty Ltd (ABN 77 084 670 600)
 * @license   https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence
 */

namespace PHP_CodeSniffer\Tests\Core\Sniffs;

use
PHP_CodeSniffer\Tests\Core\AbstractMethodUnitTest;

class
AbstractArraySniffTest extends AbstractMethodUnitTest
{

   
/**
     * The sniff objects we are testing.
     *
     * This extends the \PHP_CodeSniffer\Sniffs\AbstractArraySniff class to make the
     * internal workings of the sniff observable.
     *
     * @var \PHP_CodeSniffer\Sniffs\AbstractArraySniffTestable
     */
   
protected static $sniff;


   
/**
     * Initialize & tokenize \PHP_CodeSniffer\Files\File with code from the test case file.
     *
     * The test case file for a unit test class has to be in the same directory
     * directory and use the same file name as the test class, using the .inc extension.
     *
     * @return void
     */
   
public static function setUpBeforeClass()
    {
       
self::$sniff = new AbstractArraySniffTestable();
       
parent::setUpBeforeClass();

    }
//end setUpBeforeClass()


    /**
     * Test an array of simple values only.
     *
     * @return void
     */
   
public function testSimpleValues()
    {
       
$token = $this->getTargetToken('/* testSimpleValues */', T_OPEN_SHORT_ARRAY);
       
self::$sniff->process(self::$phpcsFile, $token);

       
$expected = [
           
0 => ['value_start' => ($token + 1)],
           
1 => ['value_start' => ($token + 3)],
           
2 => ['value_start' => ($token + 5)],
        ];

       
$this->assertSame($expected, self::$sniff->indicies);

    }
//end testSimpleValues()


    /**
     * Test an array of simple keys and values.
     *
     * @return void
     */
   
public function testSimpleKeyValues()
    {
       
$token = $this->getTargetToken('/* testSimpleKeyValues */', T_OPEN_SHORT_ARRAY);
       
self::$sniff->process(self::$phpcsFile, $token);

       
$expected = [
           
0 => [
               
'index_start' => ($token + 1),
               
'index_end'   => ($token + 1),
               
'arrow'       => ($token + 2),
               
'value_start' => ($token + 3),
            ],
           
1 => [
               
'index_start' => ($token + 5),
               
'index_end'   => ($token + 5),
               
'arrow'       => ($token + 6),
               
'value_start' => ($token + 7),
            ],
           
2 => [
               
'index_start' => ($token + 9),
               
'index_end'   => ($token + 9),
               
'arrow'       => ($token + 10),
               
'value_start' => ($token + 11),
            ],
        ];

       
$this->assertSame($expected, self::$sniff->indicies);

    }
//end testSimpleKeyValues()


    /**
     * Test an array of simple keys and values.
     *
     * @return void
     */
   
public function testMissingKeys()
    {
       
$token = $this->getTargetToken('/* testMissingKeys */', T_OPEN_SHORT_ARRAY);
       
self::$sniff->process(self::$phpcsFile, $token);

       
$expected = [
           
0 => [
               
'index_start' => ($token + 1),
               
'index_end'   => ($token + 1),
               
'arrow'       => ($token + 2),
               
'value_start' => ($token + 3),
            ],
           
1 => [
               
'value_start' => ($token + 5),
            ],
           
2 => [
               
'index_start' => ($token + 7),
               
'index_end'   => ($token + 7),
               
'arrow'       => ($token + 8),
               
'value_start' => ($token + 9),
            ],
        ];

       
$this->assertSame($expected, self::$sniff->indicies);

    }
//end testMissingKeys()


    /**
     * Test an array with keys that span multiple tokens.
     *
     * @return void
     */
   
public function testMultiTokenKeys()
    {
       
$token = $this->getTargetToken('/* testMultiTokenKeys */', T_ARRAY);
       
self::$sniff->process(self::$phpcsFile, $token);

       
$expected = [
           
0 => [
               
'index_start' => ($token + 4),
               
'index_end'   => ($token + 8),
               
'arrow'       => ($token + 10),
               
'value_start' => ($token + 12),
            ],
           
1 => [
               
'index_start' => ($token + 16),
               
'index_end'   => ($token + 20),
               
'arrow'       => ($token + 22),
               
'value_start' => ($token + 24),
            ],
        ];

       
$this->assertSame($expected, self::$sniff->indicies);

    }
//end testMultiTokenKeys()


    /**
     * Test an array of simple keys and values.
     *
     * @return void
     */
   
public function testMissingKeysCoalesceTernary()
    {
       
$token = $this->getTargetToken('/* testMissingKeysCoalesceTernary */', T_OPEN_SHORT_ARRAY);
       
self::$sniff->process(self::$phpcsFile, $token);

       
$expected = [
           
0 => [
               
'index_start' => ($token + 3),
               
'index_end'   => ($token + 3),
               
'arrow'       => ($token + 5),
               
'value_start' => ($token + 7),
            ],
           
1 => [
               
'value_start' => ($token + 31),
            ],
           
2 => [
               
'value_start' => ($token + 39),
            ],
        ];

       
$this->assertSame($expected, self::$sniff->indicies);

    }
//end testMissingKeysCoalesceTernary()


    /**
     * Test an array of ternary values.
     *
     * @return void
     */
   
public function testTernaryValues()
    {
       
$token = $this->getTargetToken('/* testTernaryValues */', T_OPEN_SHORT_ARRAY);
       
self::$sniff->process(self::$phpcsFile, $token);

       
$expected = [
           
0 => [
               
'index_start' => ($token + 3),
               
'index_end'   => ($token + 3),
               
'arrow'       => ($token + 5),
               
'value_start' => ($token + 7),
            ],
           
1 => [
               
'index_start' => ($token + 32),
               
'index_end'   => ($token + 32),
               
'arrow'       => ($token + 34),
               
'value_start' => ($token + 36),
            ],
           
2 => [
               
'index_start' => ($token + 72),
               
'index_end'   => ($token + 72),
               
'arrow'       => ($token + 74),
               
'value_start' => ($token + 76),
            ],
        ];

       
$this->assertSame($expected, self::$sniff->indicies);

    }
//end testTernaryValues()


    /**
     * Test an array of heredocs.
     *
     * @return void
     */
   
public function testHeredocValues()
    {
       
$token = $this->getTargetToken('/* testHeredocValues */', T_ARRAY);
       
self::$sniff->process(self::$phpcsFile, $token);

       
$expected = [
           
0 => [
               
'value_start' => ($token + 4),
            ],
           
1 => [
               
'value_start' => ($token + 10),
            ],
        ];

       
$this->assertSame($expected, self::$sniff->indicies);

    }
//end testHeredocValues()


    /**
     * Test an array of with an arrow function as a value.
     *
     * @return void
     */
   
public function testArrowFunctionValue()
    {
       
$token = $this->getTargetToken('/* testArrowFunctionValue */', T_ARRAY);
       
self::$sniff->process(self::$phpcsFile, $token);

       
$expected = [
           
0 => [
               
'index_start' => ($token + 4),
               
'index_end'   => ($token + 4),
               
'arrow'       => ($token + 6),
               
'value_start' => ($token + 8),
            ],
           
1 => [
               
'index_start' => ($token + 12),
               
'index_end'   => ($token + 12),
               
'arrow'       => ($token + 14),
               
'value_start' => ($token + 16),
            ],
           
2 => [
               
'index_start' => ($token + 34),
               
'index_end'   => ($token + 34),
               
'arrow'       => ($token + 36),
               
'value_start' => ($token + 38),
            ],
        ];

       
$this->assertSame($expected, self::$sniff->indicies);

    }
//end testArrowFunctionValue()


}//end class