Пример #1
0
 /**
  * @dataProvider    contexts
  * @param $context
  * @param $tokensType
  */
 public function testContext($context, $tokensType)
 {
     $lexer = new Lexer(new Reader($context), $this->getEnvironment());
     $tokens = $lexer->tokenize();
     $expected = [];
     $actual = [];
     foreach ($tokensType as $item) {
         $expected[] = $lexer->getTokenName($item[0]) . " (" . $item[1] . ")";
     }
     foreach ($tokens->getTokens() as $token) {
         if ($token->getType() == TokenTypes::T_EOF) {
             continue;
         }
         $actual[] = $lexer->getTokenName($token->getType()) . " (" . $token->getName() . ")";
     }
     $this->assertEquals($expected, $actual);
     //
     //        $tokensCount = count( $tokensType );
     //        if ( $tokensCount != $tokens->count() ) {
     //            $this->assertEquals( $tokensType , $tokens->getTokens());
     //        }
     //
     //        foreach ( $tokensType as $i => $token ) {
     //            $this->assertEquals(
     //                $token[0],
     //                $tokens[$i]->getType(),
     //                sprintf(
     //                    'Invalid token `%s` at token offset %d, it must be `%s`' ,
     //                    $lexer->getTokenName( $tokens[$i]->getType() ) ,
     //                    $i,
     //                    $lexer->getTokenName( $token[0] )
     //                )
     //            );
     //            $this->assertEquals(
     //                $token[1],
     //                $tokens[$i]->getName(),
     //                sprintf(
     //                    'Invalid token name `%s` at token offset %d, it must be `%s`',
     //                    $tokens[$i]->getName(),
     //                    $i,
     //                    $token[1]
     //                )
     //            );
     //        }
 }