diff --git a/tests/lib/Service/OpenProjectAPIServiceTest.php b/tests/lib/Service/OpenProjectAPIServiceTest.php index 113c01888..e5ad6c160 100644 --- a/tests/lib/Service/OpenProjectAPIServiceTest.php +++ b/tests/lib/Service/OpenProjectAPIServiceTest.php @@ -400,6 +400,7 @@ private function getOpenProjectAPIService( * @param ISubAdmin|null $subAdminManagerMock * @param ISecureRandom|null $iSecureRandomMock * @param IConfig|null $configMock + * @param IProvider|null $tokenProviderMock * @return OpenProjectAPIService|MockObject */ private function getServiceMock( @@ -411,7 +412,8 @@ private function getServiceMock( $appManagerMock = null, $subAdminManagerMock = null, $iSecureRandomMock = null, - $configMock = null + $configMock = null, + $tokenProviderMock = null ): OpenProjectAPIService { $onlyMethods[] = 'getBaseUrl'; if ($rootMock === null) { @@ -438,6 +440,9 @@ private function getServiceMock( if ($configMock === null) { $configMock = $this->createMock(IConfig::class); } + if ($tokenProviderMock === null) { + $tokenProviderMock = $this->createMock(IProvider::class); + } $mock = $this->getMockBuilder(OpenProjectAPIService::class) ->setConstructorArgs( [ @@ -454,7 +459,7 @@ private function getServiceMock( $groupManagerMock, $appManagerMock, $this->createMock(IDBConnection::class), - $this->createMock(IProvider::class), + $tokenProviderMock, $iSecureRandomMock, $this->createMock(IEventDispatcher::class), $subAdminManagerMock, @@ -1739,6 +1744,36 @@ public function testIsSystemReadyForGroupFolderSetUpUserOrGroupExistsException( $service->isSystemReadyForProjectFolderSetUp(); } + public function testProjectFolderHasAppPassword(): void { + $tokenProviderMock = $this->getMockBuilder(IProvider::class)->disableOriginalConstructor() + ->getMock(); + $tokenMock = $this->getMockBuilder(IToken::class)->getMock(); + $tokenMock + ->method('getName') + ->willReturn('OpenProject'); + $tokenProviderMock + ->method('getTokenByUser') + ->with(Application::OPEN_PROJECT_ENTITIES_NAME) + ->willReturn([$tokenMock]); + $service = $this->getServiceMock([], null, null, null, null, null, null, null, null, $tokenProviderMock); + $this->assertTrue($service->hasAppPassword()); + } + + public function testProjectFolderHasAppPasswordNegativeCondition(): void { + $tokenProviderMock = $this->getMockBuilder(IProvider::class)->disableOriginalConstructor() + ->getMock(); + $tokenMock = $this->getMockBuilder(IToken::class)->getMock(); + $tokenMock + ->method('getName') + ->willReturn('session'); + $tokenProviderMock + ->method('getTokenByUser') + ->with(Application::OPEN_PROJECT_ENTITIES_NAME) + ->willReturn([$tokenMock]); + $service = $this->getServiceMock([], null, null, null, null, null, null, null, null, $tokenProviderMock); + $this->assertFalse($service->hasAppPassword()); + } + public function testLinkWorkPackageToFilePact(): void { $consumerRequest = new ConsumerRequest(); $consumerRequest