LexerTest.php 895 B

12345678910111213141516171819202122232425262728293031323334353637383940
  1. <?php
  2. declare(strict_types=1);
  3. namespace Dotenv\Tests\Parser;
  4. use Dotenv\Parser\Lexer;
  5. use PHPUnit\Framework\TestCase;
  6. final class LexerTest extends TestCase
  7. {
  8. /**
  9. * @return array{string,string[]}[]
  10. */
  11. public static function provideLexCases()
  12. {
  13. return [
  14. ['', []],
  15. ['FOO', ['FOO']],
  16. ['FOO bar', ['FOO', ' ', 'bar']],
  17. ['FOO\\n()ab', ['FOO', '\\', 'n()ab']],
  18. ["FOO\n\n A", ['FOO', "\n\n", ' ', 'A']],
  19. ['"VA=L"', ['"', 'VA=L', '"']],
  20. ['\' \'', ['\'', ' ', '\'']],
  21. ];
  22. }
  23. /**
  24. * @dataProvider provideLexCases
  25. *
  26. * @param string $input
  27. * @param string[] $output
  28. *
  29. * @return void
  30. */
  31. public function testLex(string $input, array $output)
  32. {
  33. self::assertSame($output, \iterator_to_array(Lexer::lex($input)));
  34. }
  35. }