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.
		
		
		
		
		
			
		
			
				
					
					
						
							48 lines
						
					
					
						
							975 B
						
					
					
				
			
		
		
	
	
							48 lines
						
					
					
						
							975 B
						
					
					
				<?php
 | 
						|
 | 
						|
declare(strict_types=1);
 | 
						|
 | 
						|
namespace tests;
 | 
						|
 | 
						|
use flight\Engine;
 | 
						|
use tests\classes\User;
 | 
						|
use PHPUnit\Framework\TestCase;
 | 
						|
 | 
						|
class AutoloadTest extends TestCase
 | 
						|
{
 | 
						|
    private Engine $app;
 | 
						|
 | 
						|
    protected function setUp(): void
 | 
						|
    {
 | 
						|
        $this->app = new Engine();
 | 
						|
        $this->app->path(__DIR__ . '/classes');
 | 
						|
    }
 | 
						|
 | 
						|
    // Autoload a class
 | 
						|
    public function testAutoload(): void
 | 
						|
    {
 | 
						|
        $this->app->register('user', User::class);
 | 
						|
 | 
						|
        $loaders = spl_autoload_functions();
 | 
						|
 | 
						|
        $user = $this->app->user();
 | 
						|
 | 
						|
        self::assertTrue(count($loaders) > 0);
 | 
						|
        self::assertIsObject($user);
 | 
						|
        self::assertInstanceOf(User::class, $user);
 | 
						|
    }
 | 
						|
 | 
						|
    // Check autoload failure
 | 
						|
    public function testMissingClass(): void
 | 
						|
    {
 | 
						|
        $test = null;
 | 
						|
        $this->app->register('test', 'NonExistentClass');
 | 
						|
 | 
						|
        if (class_exists('NonExistentClass')) {
 | 
						|
            $test = $this->app->test();
 | 
						|
        }
 | 
						|
 | 
						|
        self::assertNull($test);
 | 
						|
    }
 | 
						|
}
 |