createStub(ContainerInterface::class); $this->setPrivate($bootstrap, 'container', $container); self::assertSame($container, $bootstrap->initializeInfrastructure()); self::assertSame($container, $bootstrap->getContainer()); } public function testCreateHttpAppReturnsPreloadedApp(): void { $bootstrap = Bootstrap::create(); $app = AppFactory::create(); $this->setPrivate($bootstrap, 'app', $app); self::assertSame($app, $bootstrap->createHttpApp()); } public function testInitializeReturnsPreloadedApp(): void { $bootstrap = Bootstrap::create(); $container = $this->createStub(ContainerInterface::class); $app = AppFactory::create(); $this->setPrivate($bootstrap, 'container', $container); $this->setPrivate($bootstrap, 'app', $app); self::assertSame($app, $bootstrap->initialize()); } private function setPrivate(Bootstrap $bootstrap, string $property, mixed $value): void { $reflection = new ReflectionProperty($bootstrap, $property); $reflection->setAccessible(true); $reflection->setValue($bootstrap, $value); } }