database = $this ->getMockBuilder(PublicKeyCredentialSourceRepositorySQLite::class) ->setMethods(array('findOneByCredentialId', 'findAllForUserEntity', 'saveCredentialSource')) ->getMock(); $this->database->method('findOneByCredentialId')->willReturn(null); $this->database->method('findAllForUserEntity')->willReturn(array()); $this->manager = $this ->getMockBuilder(WebauthnManager::class) ->setMethods(array('getDatabase')) ->getMock(); $this->manager->method('getDatabase')->willReturn($this->database); $cfgMain = new \LAMCfgMain(); $cfgMain->passwordMinLength = 3; $logFile = tmpfile(); $logFilePath = stream_get_meta_data($logFile)['uri']; $cfgMain->logDestination = $logFilePath; $_SESSION['cfgMain'] = $cfgMain; $file = tmpfile(); $filePath = stream_get_meta_data($file)['uri']; $config = new \LAMConfig($filePath); $config->setTwoFactorAuthenticationDomain('domain'); $_SESSION['config'] = $config; } public function test_getAuthenticationObject() { $authenticationObj = $this->manager->getAuthenticationObject('userDN', false); $this->assertEquals(40, sizeof($authenticationObj->getChallenge())); $this->assertEquals('domain', $authenticationObj->getRpId()); } public function test_getRegistrationObject() { $registrationObject = $this->manager->getRegistrationObject('userDn', false); $this->assertEquals(40, sizeof($registrationObject->getChallenge())); $this->assertEquals('domain', $registrationObject->getRp()->getId()); } public function test_isRegistered() { $this->database->method('findAllForUserEntity')->willReturn(array()); $isRegistered = $this->manager->isRegistered('userDN'); $this->assertFalse($isRegistered); $this->database->method('findAllForUserEntity')->willReturn(array( new PublicKeyCredentialSource( "id1", PublicKeyCredentialDescriptor::CREDENTIAL_TYPE_PUBLIC_KEY, array(), "atype", new CertificateTrustPath(array('x5c' => 'test')), \Ramsey\Uuid\Uuid::uuid1(), "p1", "uh1", 1) )); $isRegistered = $this->manager->isRegistered('userDN'); $this->assertTrue($isRegistered); } }