registerHook([ $this->getMockBuilder(IHook::class)->disableOriginalConstructor()->getMock(), $this->getMockBuilder(IHook::class)->disableOriginalConstructor()->getMock(), $this->createMock(IConfig::class) ]); $hookInstances = self::invokePrivate(self::$instance, 'hookInstances'); // Make sure our type checking works $this->assertCount(2, $hookInstances); } public static function setUpBeforeClass(): void { parent::setUpBeforeClass(); // have to make instance static to preserve data between tests self::$instance = new HookManager(); } public function testRegisterHooksWithInstance(): void { $mock = $this->getMockBuilder(IHook::class)->disableOriginalConstructor()->getMock(); /** @var \OCA\Encryption\Hooks\Contracts\IHook $mock */ self::$instance->registerHook($mock); $hookInstances = self::invokePrivate(self::$instance, 'hookInstances'); $this->assertCount(3, $hookInstances); } }