container = new SimpleContainer(); } public function testInjectFnNotRegistered(): void { $this->expectException(\OCP\AppFramework\QueryException::class); (new FunctionInjector($this->container))->injectFn(static function (Foo $p1): void { }); } public function testInjectFnNotRegisteredButNullable(): void { (new FunctionInjector($this->container))->injectFn(static function (?Foo $p1): void { }); // Nothing to assert. No errors means everything is fine. $this->addToAssertionCount(1); } public function testInjectFnByType(): void { $this->container->registerService(Foo::class, function () { $this->addToAssertionCount(1); return new class implements Foo { }; }); (new FunctionInjector($this->container))->injectFn(static function (Foo $p1): void { }); // Nothing to assert. No errors means everything is fine. $this->addToAssertionCount(1); } public function testInjectFnByName(): void { $this->container->registerParameter('test', 'abc'); (new FunctionInjector($this->container))->injectFn(static function ($test): void { }); // Nothing to assert. No errors means everything is fine. $this->addToAssertionCount(1); } }