/** * @dataProvider _provider */ public function test_credential_criterias($profileRole, $expectedMetadataType) { $signatureResolver = new OwnSignatureResolver($credentialResolverMock = TestHelper::getCredentialResolverMock($this)); $context = TestHelper::getProfileContext(Profiles::METADATA, $profileRole); $context->getOwnEntityContext()->setEntityDescriptor($ownEntityDescriptor = new EntityDescriptor($ownEntityId = 'http://own.id')); $credentialResolverMock->method('query')->willReturn($query = new CredentialResolverQuery($credentialResolverMock)); $credentialResolverMock->method('resolve')->willReturnCallback(function (CriteriaSet $criteriaSet) use($ownEntityId, $expectedMetadataType) { TestHelper::assertCriteria($this, $criteriaSet, EntityIdCriteria::class, 'getEntityId', $ownEntityId); TestHelper::assertCriteria($this, $criteriaSet, UsageCriteria::class, 'getUsage', UsageType::SIGNING); TestHelper::assertCriteria($this, $criteriaSet, X509CredentialCriteria::class, null, null); TestHelper::assertCriteria($this, $criteriaSet, MetadataCriteria::class, 'getMetadataType', $expectedMetadataType); return [TestHelper::getX509CredentialMock($this)]; }); $signatureResolver->getSignature($context); }