41 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			41 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| /**
 | |
|  * @author Daniel J. Summers <daniel@bitbadger.solutions>
 | |
|  * @license MIT
 | |
|  */
 | |
| 
 | |
| declare(strict_types=1);
 | |
| 
 | |
| use BitBadger\PDODocument\DocumentException;
 | |
| 
 | |
| pest()->group('unit');
 | |
| 
 | |
| describe('Constructor', function () {
 | |
|     test('fills code and prior exception if provided', function () {
 | |
|         $priorEx = new Exception('Uh oh');
 | |
|         expect(new DocumentException('Test Exception', 17, $priorEx))
 | |
|             ->not->toBeNull()
 | |
|             ->getMessage()->toBe('Test Exception')
 | |
|             ->getCode()->toBe(17)
 | |
|             ->getPrevious()->toBe($priorEx);
 | |
|     });
 | |
|     test('uses expected code and prior exception if not provided', function () {
 | |
|         expect(new DocumentException('Oops'))
 | |
|             ->not->toBeNull()
 | |
|             ->getMessage()->toBe('Oops')
 | |
|             ->getCode()->toBe(0)
 | |
|             ->getPrevious()->toBeNull();
 | |
|     });
 | |
| });
 | |
| 
 | |
| describe('->__toString()', function () {
 | |
|     test('excludes code if 0', function () {
 | |
|         $ex = new DocumentException('Test failure');
 | |
|         expect("$ex")->toBe("BitBadger\PDODocument\DocumentException: Test failure\n");
 | |
|     });
 | |
|     test('includes code if non-zero', function () {
 | |
|         $ex = new DocumentException('Oof', -6);
 | |
|         expect("$ex")->toBe("BitBadger\PDODocument\DocumentException: [-6] Oof\n");
 | |
|     });
 | |
| });
 |