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); } // Flight::path() must load namespaced classes that Composer PSR-4 does not map public function testPathAutoloadsNamespacedClassOutsideComposerPsr4(): void { $class = \app\middleware\Something::class; self::assertFalse(class_exists($class)); Flight::path(__DIR__ . '/path_autoload_fixtures'); self::assertTrue(class_exists($class)); self::assertTrue(class_exists(Engine::class)); } }