/**
  * @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);
 }