mirror of https://github.com/flightphp/core
				
				
				
			
			You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							96 lines
						
					
					
						
							2.2 KiB
						
					
					
				
			
		
		
	
	
							96 lines
						
					
					
						
							2.2 KiB
						
					
					
				<?php
 | 
						|
 | 
						|
declare(strict_types=1);
 | 
						|
 | 
						|
namespace tests;
 | 
						|
 | 
						|
use Exception;
 | 
						|
use Flight;
 | 
						|
use flight\Engine;
 | 
						|
use PHPUnit\Framework\TestCase;
 | 
						|
use Throwable;
 | 
						|
 | 
						|
class DocExamplesTest extends TestCase
 | 
						|
{
 | 
						|
    protected function setUp(): void
 | 
						|
    {
 | 
						|
        $_SERVER = [];
 | 
						|
        $_REQUEST = [];
 | 
						|
        Flight::init();
 | 
						|
        Flight::setEngine(new Engine());
 | 
						|
    }
 | 
						|
 | 
						|
    protected function tearDown(): void
 | 
						|
    {
 | 
						|
        unset($_REQUEST);
 | 
						|
        unset($_SERVER);
 | 
						|
        Flight::clear();
 | 
						|
    }
 | 
						|
 | 
						|
    public function testMapNotFoundMethod(): void
 | 
						|
    {
 | 
						|
        Flight::map('notFound', function () {
 | 
						|
            Flight::json([], 404);
 | 
						|
        });
 | 
						|
 | 
						|
        Flight::request()->url = '/not-found';
 | 
						|
 | 
						|
        Flight::route('/', function () {
 | 
						|
            echo 'hello world!';
 | 
						|
        });
 | 
						|
 | 
						|
        Flight::start();
 | 
						|
        $this->expectOutputString('[]');
 | 
						|
        $this->assertEquals(404, Flight::response()->status());
 | 
						|
        $this->assertEquals('[]', Flight::response()->getBody());
 | 
						|
    }
 | 
						|
 | 
						|
    public function testMapNotFoundMethodV2OutputBuffering(): void
 | 
						|
    {
 | 
						|
        Flight::map('notFound', function () {
 | 
						|
            Flight::json([], 404);
 | 
						|
        });
 | 
						|
 | 
						|
        Flight::request()->url = '/not-found';
 | 
						|
 | 
						|
        Flight::route('/', function () {
 | 
						|
            echo 'hello world!';
 | 
						|
        });
 | 
						|
 | 
						|
        Flight::set('flight.v2.output_buffering', true);
 | 
						|
        Flight::start();
 | 
						|
        ob_get_clean();
 | 
						|
        $this->assertEquals(404, Flight::response()->status());
 | 
						|
        $this->assertEquals('[]', Flight::response()->getBody());
 | 
						|
    }
 | 
						|
 | 
						|
    public function testMapErrorMethod(): void
 | 
						|
    {
 | 
						|
        Flight::map('error', function (Throwable $error) {
 | 
						|
            // Handle error
 | 
						|
            echo 'Custom: ' . $error->getMessage();
 | 
						|
        });
 | 
						|
 | 
						|
        Flight::app()->handleException(new Exception('Error'));
 | 
						|
        $this->expectOutputString('Custom: Error');
 | 
						|
    }
 | 
						|
 | 
						|
    public function testGetRouterStatically(): void
 | 
						|
    {
 | 
						|
        $router = Flight::router();
 | 
						|
        Flight::request()->method = 'GET';
 | 
						|
        Flight::request()->url = '/';
 | 
						|
 | 
						|
        $router->get(
 | 
						|
            '/',
 | 
						|
            function () {
 | 
						|
                Flight::response()->write('from resp ');
 | 
						|
            }
 | 
						|
        );
 | 
						|
 | 
						|
        Flight::start();
 | 
						|
 | 
						|
        $this->expectOutputString('from resp ');
 | 
						|
    }
 | 
						|
}
 |