packages/sql-parser/tests/Unit/Lexer/TokenTest.php
1<?php
2
3declare(strict_types=1);
4
5namespace Tests\Unit\Lexer;
6
7use PHPUnit\Framework\Attributes\CoversClass;
8use PHPUnit\Framework\Attributes\Small;
9use PHPUnit\Framework\TestCase;
10use SqlParser\Lexer\Token;
11
12#[CoversClass(Token::class)]
13#[Small]
14final class TokenTest extends TestCase
15{
16 public function testEnd(): void
17 {
18 self::assertSame(9, (new Token(3, 'SELECT_SYM', 'SELECT', 3))->end());
19 self::assertSame(3, (new Token(0, '$end', '', 3))->end());
20 }
21
22 public function testIs(): void
23 {
24 $token = new Token(3, 'SELECT_SYM', 'select', 0);
25
26 self::assertTrue($token->is('SELECT_SYM'));
27 self::assertFalse($token->is('select'));
28 }
29
30 public function testToStringWritesTheTriviaBeforeTheText(): void
31 {
32 self::assertSame(' /* one */ 1', (new Token(7, 'NUM', '1', 11, ' /* one */ '))->toString());
33 self::assertSame('SELECT', (new Token(3, 'SELECT_SYM', 'SELECT', 0))->toString());
34 self::assertSame("\n-- done\n", (new Token(0, '$end', '', 9, "\n-- done\n"))->toString());
35 }
36}
37