35 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			35 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php declare(strict_types=1);
 | |
| 
 | |
| namespace Test\Unit\Query;
 | |
| 
 | |
| use BitBadger\PDODocument\Field;
 | |
| use BitBadger\PDODocument\Query\Exists;
 | |
| use PHPUnit\Framework\Attributes\TestDox;
 | |
| use PHPUnit\Framework\TestCase;
 | |
| 
 | |
| /**
 | |
|  * Unit tests for the Exists class
 | |
|  */
 | |
| class ExistsTest extends TestCase
 | |
| {
 | |
|     public function testQuerySucceeds(): void
 | |
|     {
 | |
|         $this->assertEquals('SELECT EXISTS (SELECT 1 FROM abc WHERE def)', Exists::query('abc', 'def'),
 | |
|             'Existence query not generated correctly');
 | |
|     }
 | |
| 
 | |
|     #[TestDox('By ID succeeds')]
 | |
|     public function testByIdSucceeds(): void
 | |
|     {
 | |
|         $this->assertEquals("SELECT EXISTS (SELECT 1 FROM dox WHERE data->>'id' = :id)", Exists::byId('dox'),
 | |
|             'Existence query not generated correctly');
 | |
|     }
 | |
| 
 | |
|     public function testByFieldsSucceeds(): void
 | |
|     {
 | |
|         $this->assertEquals("SELECT EXISTS (SELECT 1 FROM box WHERE data->>'status' <> :status)",
 | |
|             Exists::byFields('box', [Field::NE('status', 'occupied', ':status')]),
 | |
|             'Existence query not generated correctly');
 | |
|     }
 | |
| }
 |