RpProfileTestsProvider   A
last analyzed

Complexity

Total Complexity 5

Size/Duplication

Total Lines 412
Duplicated Lines 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 281
dl 0
loc 412
rs 10
c 1
b 0
f 0
wmc 5

4 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 3 1
A getAvailableProfiles() 0 3 1
A getTests() 0 3 1
A getResponseTypeForProfile() 0 9 2
1
<?php
2
3
declare(strict_types=1);
4
5
namespace Facile\OpenIDClient\ConformanceTest\Provider;
6
7
use InvalidArgumentException;
8
use Psr\Container\ContainerInterface;
9
use Facile\OpenIDClient\ConformanceTest\RpTest\RpTestInterface;
10
use Facile\OpenIDClient\ConformanceTest\RpTest;
11
use Facile\OpenIDClient\ConformanceTest\TestInfo;
12
13
class RpProfileTestsProvider
14
{
15
    /** @var ContainerInterface */
16
    private $container;
17
18
    /** @var array<string, string> */
19
    private static $responseTypeMap = [
20
        TestInfo::PROFILE_BASIC_CODE => 'code',
21
        TestInfo::PROFILE_IMPLICIT_IDTOKEN => 'id_token',
22
        TestInfo::PROFILE_IMPLICIT_IDTOKEN_TOKEN => 'id_token token',
23
        TestInfo::PROFILE_HYBRID_CODE_IDTOKEN => 'code id_token',
24
        TestInfo::PROFILE_HYBRID_CODE_TOKEN => 'code token',
25
        TestInfo::PROFILE_HYBRID_CODE_IDTOKEN_TOKEN => 'code id_token token',
26
        TestInfo::PROFILE_CONFIGURATION => 'code',
27
        TestInfo::PROFILE_DYNAMIC => 'code',
28
    ];
29
30
    private static $testMap = [
31
        TestInfo::PROFILE_BASIC_CODE => [
32
            RpTest\ResponseTypeAndResponseMode\RPResponseTypeCodeTest::class,
33
            RpTest\ScopeRequestParameter\RpScopeUserinfoClaimsTest::class,
34
            RpTest\NonceRequestParameter\RpNonceInvalidTest::class,
35
            RpTest\ClientAuthentication\RpTokenEndpointClientSecretBasicTest::class,
36
            RpTest\IdToken\RpIdTokenKidAbsentSingleJwksTest::class,
37
            RpTest\IdToken\RpIdTokenIatTest::class,
38
            RpTest\IdToken\RpIdTokenAudTest::class,
39
            RpTest\IdToken\RpIdTokenKidAbsentMultipleJwksTest::class,
40
            RpTest\IdToken\RpIdTokenSigNoneTest::class,
41
            RpTest\IdToken\RpIdTokenSigRS256Test::class,
42
            RpTest\IdToken\RpIdTokenSubTest::class,
43
            RpTest\IdToken\RpIdTokenBadSigRS256Test::class,
44
            RpTest\IdToken\RpIdTokenIssuerMismatchTest::class,
45
            RpTest\UserInfoEndpoint\RpUserInfoBadSubClaimTest::class,
46
            RpTest\UserInfoEndpoint\RpUserInfoBearerHeaderTest::class,
47
            // optional
48
            // Discovery
49
            RpTest\Discovery\RPDiscoveryWebFingerAcct::class,
50
            RpTest\Discovery\RPDiscoveryWebFingerUrl::class,
51
            RpTest\Discovery\RPDiscoveryOpenIdConfiguration::class,
52
            RpTest\Discovery\RPDiscoveryJwksUriKeys::class,
53
            RpTest\Discovery\RPDiscoveryIssuerNotMatchingConfig::class,
54
            RpTest\Discovery\RPDiscoveryWebFingerUnknownMember::class,
55
            // Dynamic client registration
56
            RpTest\DynamicClientRegistration\RPRegistrationDynamic::class,
57
            // Response Type And Response Mode
58
            RpTest\ResponseTypeAndResponseMode\RPResponseModeFormPostErrorTest::class,
59
            RpTest\ResponseTypeAndResponseMode\RPResponseModeFormPostTest::class,
60
            // Client Authentication
61
            RpTest\ClientAuthentication\RpTokenEndpointPrivateKeyJwtTest::class,
62
            RpTest\ClientAuthentication\RpTokenEndpointClientSecretJwtTest::class,
63
            // ID Token
64
            RpTest\IdToken\RpIdTokenSigEncTest::class,
65
            RpTest\IdToken\RpIdTokenSigHS256Test::class,
66
            RpTest\IdToken\RpIdTokenSigES256Test::class,
67
            RpTest\IdToken\RpIdTokenSigEncA128KWTest::class,
68
            RpTest\IdToken\RpIdTokenBadSigHS256Test::class,
69
            RpTest\IdToken\RpIdTokenBadSigES256Test::class,
70
            // UserInfo Endpoint
71
            RpTest\UserInfoEndpoint\RPUserInfoSigTest::class,
72
            RpTest\UserInfoEndpoint\RpUserInfoBearerBodyTest::class,
73
            RpTest\UserInfoEndpoint\RPUserInfoSigEncTest::class,
74
            RpTest\UserInfoEndpoint\RPUserInfoEncTest::class,
75
            // Key Rotation
76
            RpTest\KeyRotation\RPKeyRotationOPSignKeyNativeTest::class,
77
            RpTest\KeyRotation\RPKeyRotationOPSignKeyTest::class,
78
            RpTest\KeyRotation\RPKeyRotationOPEncKeyTest::class,
79
            // Claims Types
80
            RpTest\ClaimsTypes\RPClaimsDistributedTest::class,
81
            RpTest\ClaimsTypes\RPClaimsAggregatedTest::class,
82
        ],
83
        TestInfo::PROFILE_HYBRID_CODE_IDTOKEN => [
84
            RpTest\ResponseTypeAndResponseMode\RPResponseTypeCodeIdTokenTest::class,
85
            RpTest\ScopeRequestParameter\RpScopeUserinfoClaimsTest::class,
86
            RpTest\NonceRequestParameter\RpNonceInvalidTest::class,
87
            RpTest\NonceRequestParameter\RpNonceUnlessCodeFlowTest::class,
88
            RpTest\ClientAuthentication\RpTokenEndpointClientSecretBasicTest::class,
89
            RpTest\IdToken\RpIdTokenKidAbsentSingleJwksTest::class,
90
            RpTest\IdToken\RpIdTokenIatTest::class,
91
            RpTest\IdToken\RpIdTokenAudTest::class,
92
            RpTest\IdToken\RpIdTokenKidAbsentMultipleJwksTest::class,
93
            RpTest\IdToken\RpIdTokenMissingCHashTest::class,
94
            RpTest\IdToken\RpIdTokenSigRS256Test::class,
95
            RpTest\IdToken\RpIdTokenSubTest::class,
96
            RpTest\IdToken\RpIdTokenBadCHashTest::class,
97
            RpTest\IdToken\RpIdTokenBadSigRS256Test::class,
98
            RpTest\IdToken\RpIdTokenIssuerMismatchTest::class,
99
            RpTest\UserInfoEndpoint\RpUserInfoBadSubClaimTest::class,
100
            RpTest\UserInfoEndpoint\RpUserInfoBearerHeaderTest::class,
101
            // optional
102
            // Discovery
103
            RpTest\Discovery\RPDiscoveryWebFingerAcct::class,
104
            RpTest\Discovery\RPDiscoveryWebFingerUrl::class,
105
            RpTest\Discovery\RPDiscoveryOpenIdConfiguration::class,
106
            RpTest\Discovery\RPDiscoveryJwksUriKeys::class,
107
            RpTest\Discovery\RPDiscoveryIssuerNotMatchingConfig::class,
108
            RpTest\Discovery\RPDiscoveryWebFingerUnknownMember::class,
109
            // Dynamic client registration
110
            RpTest\DynamicClientRegistration\RPRegistrationDynamic::class,
111
            // Response Type And Response Mode
112
            RpTest\ResponseTypeAndResponseMode\RPResponseModeFormPostErrorTest::class,
113
            RpTest\ResponseTypeAndResponseMode\RPResponseModeFormPostTest::class,
114
            // request_uri Request Parameter
115
            // - rp-request_uri-enc
116
            // - rp-request_uri-sig
117
            // - rp-request_uri-sig+enc
118
            // - rp-request_uri-unsigned
119
            // Client Authentication
120
            // - rp-token_endpoint-client_secret_post
121
            RpTest\ClientAuthentication\RpTokenEndpointPrivateKeyJwtTest::class,
122
            RpTest\ClientAuthentication\RpTokenEndpointClientSecretJwtTest::class,
123
            // ID Token
124
            RpTest\IdToken\RpIdTokenSigEncTest::class,
125
            RpTest\IdToken\RpIdTokenSigHS256Test::class,
126
            RpTest\IdToken\RpIdTokenSigES256Test::class,
127
            RpTest\IdToken\RpIdTokenSigEncA128KWTest::class,
128
            RpTest\IdToken\RpIdTokenBadSigHS256Test::class,
129
            RpTest\IdToken\RpIdTokenBadSigES256Test::class,
130
            // UserInfo Endpoint
131
            RpTest\UserInfoEndpoint\RPUserInfoSigTest::class,
132
            RpTest\UserInfoEndpoint\RpUserInfoBearerBodyTest::class,
133
            RpTest\UserInfoEndpoint\RPUserInfoSigEncTest::class,
134
            RpTest\UserInfoEndpoint\RPUserInfoEncTest::class,
135
            // Key Rotation
136
            RpTest\KeyRotation\RPKeyRotationOPSignKeyNativeTest::class,
137
            RpTest\KeyRotation\RPKeyRotationOPSignKeyTest::class,
138
            RpTest\KeyRotation\RPKeyRotationOPEncKeyTest::class,
139
            // Claims Types
140
            RpTest\ClaimsTypes\RPClaimsDistributedTest::class,
141
            RpTest\ClaimsTypes\RPClaimsAggregatedTest::class,
142
        ],
143
        TestInfo::PROFILE_HYBRID_CODE_IDTOKEN_TOKEN => [
144
            RpTest\ResponseTypeAndResponseMode\RPResponseTypeCodeIdTokenTokenTest::class,
145
            RpTest\ScopeRequestParameter\RpScopeUserinfoClaimsTest::class,
146
            RpTest\NonceRequestParameter\RpNonceInvalidTest::class,
147
            RpTest\NonceRequestParameter\RpNonceUnlessCodeFlowTest::class,
148
            RpTest\ClientAuthentication\RpTokenEndpointClientSecretBasicTest::class,
149
            RpTest\IdToken\RpIdTokenKidAbsentSingleJwksTest::class,
150
            RpTest\IdToken\RpIdTokenIatTest::class,
151
            RpTest\IdToken\RpIdTokenAudTest::class,
152
            RpTest\IdToken\RpIdTokenKidAbsentMultipleJwksTest::class,
153
            RpTest\IdToken\RpIdTokenMissingCHashTest::class,
154
            RpTest\IdToken\RpIdTokenMissingAtHashTest::class,
155
            RpTest\IdToken\RpIdTokenSigRS256Test::class,
156
            RpTest\IdToken\RPIdTokenBadAtHashTest::class,
157
            RpTest\IdToken\RpIdTokenSubTest::class,
158
            RpTest\IdToken\RpIdTokenBadCHashTest::class,
159
            RpTest\IdToken\RpIdTokenBadSigRS256Test::class,
160
            RpTest\IdToken\RpIdTokenIssuerMismatchTest::class,
161
            RpTest\UserInfoEndpoint\RpUserInfoBadSubClaimTest::class,
162
            RpTest\UserInfoEndpoint\RpUserInfoBearerHeaderTest::class,
163
            // optional
164
            // Discovery
165
            RpTest\Discovery\RPDiscoveryWebFingerAcct::class,
166
            RpTest\Discovery\RPDiscoveryWebFingerUrl::class,
167
            RpTest\Discovery\RPDiscoveryOpenIdConfiguration::class,
168
            RpTest\Discovery\RPDiscoveryJwksUriKeys::class,
169
            RpTest\Discovery\RPDiscoveryIssuerNotMatchingConfig::class,
170
            RpTest\Discovery\RPDiscoveryWebFingerUnknownMember::class,
171
            // Dynamic client registration
172
            RpTest\DynamicClientRegistration\RPRegistrationDynamic::class,
173
            // Response Type And Response Mode
174
            RpTest\ResponseTypeAndResponseMode\RPResponseModeFormPostErrorTest::class,
175
            RpTest\ResponseTypeAndResponseMode\RPResponseModeFormPostTest::class,
176
            // request_uri Request Parameter
177
            // - rp-request_uri-enc
178
            // - rp-request_uri-sig
179
            // - rp-request_uri-sig+enc
180
            // - rp-request_uri-unsigned
181
            // Client Authentication
182
            // - rp-token_endpoint-client_secret_post
183
            RpTest\ClientAuthentication\RpTokenEndpointPrivateKeyJwtTest::class,
184
            RpTest\ClientAuthentication\RpTokenEndpointClientSecretJwtTest::class,
185
            // ID Token
186
            RpTest\IdToken\RpIdTokenSigEncTest::class,
187
            RpTest\IdToken\RpIdTokenSigHS256Test::class,
188
            RpTest\IdToken\RpIdTokenSigES256Test::class,
189
            RpTest\IdToken\RpIdTokenSigEncA128KWTest::class,
190
            RpTest\IdToken\RpIdTokenBadSigHS256Test::class,
191
            RpTest\IdToken\RpIdTokenBadSigES256Test::class,
192
            // UserInfo Endpoint
193
            RpTest\UserInfoEndpoint\RPUserInfoSigTest::class,
194
            RpTest\UserInfoEndpoint\RpUserInfoBearerBodyTest::class,
195
            RpTest\UserInfoEndpoint\RPUserInfoSigEncTest::class,
196
            RpTest\UserInfoEndpoint\RPUserInfoEncTest::class,
197
            // Key Rotation
198
            RpTest\KeyRotation\RPKeyRotationOPSignKeyNativeTest::class,
199
            RpTest\KeyRotation\RPKeyRotationOPSignKeyTest::class,
200
            RpTest\KeyRotation\RPKeyRotationOPEncKeyTest::class,
201
            // Claims Types
202
            RpTest\ClaimsTypes\RPClaimsDistributedTest::class,
203
            RpTest\ClaimsTypes\RPClaimsAggregatedTest::class,
204
        ],
205
        TestInfo::PROFILE_HYBRID_CODE_TOKEN => [
206
            RpTest\ResponseTypeAndResponseMode\RPResponseTypeCodeTokenTest::class,
207
            RpTest\ScopeRequestParameter\RpScopeUserinfoClaimsTest::class,
208
            RpTest\NonceRequestParameter\RpNonceInvalidTest::class,
209
            RpTest\NonceRequestParameter\RpNonceUnlessCodeFlowTest::class,
210
            RpTest\ClientAuthentication\RpTokenEndpointClientSecretBasicTest::class,
211
            RpTest\IdToken\RpIdTokenKidAbsentSingleJwksTest::class,
212
            RpTest\IdToken\RpIdTokenIatTest::class,
213
            RpTest\IdToken\RpIdTokenAudTest::class,
214
            RpTest\IdToken\RpIdTokenKidAbsentMultipleJwksTest::class,
215
            RpTest\IdToken\RpIdTokenSigRS256Test::class,
216
            RpTest\IdToken\RpIdTokenSubTest::class,
217
            RpTest\IdToken\RpIdTokenBadSigRS256Test::class,
218
            RpTest\IdToken\RpIdTokenIssuerMismatchTest::class,
219
            RpTest\UserInfoEndpoint\RpUserInfoBadSubClaimTest::class,
220
            RpTest\UserInfoEndpoint\RpUserInfoBearerHeaderTest::class,
221
            // optional
222
            // Discovery
223
            RpTest\Discovery\RPDiscoveryWebFingerAcct::class,
224
            RpTest\Discovery\RPDiscoveryWebFingerUrl::class,
225
            RpTest\Discovery\RPDiscoveryOpenIdConfiguration::class,
226
            RpTest\Discovery\RPDiscoveryJwksUriKeys::class,
227
            RpTest\Discovery\RPDiscoveryIssuerNotMatchingConfig::class,
228
            RpTest\Discovery\RPDiscoveryWebFingerUnknownMember::class,
229
            // Dynamic client registration
230
            RpTest\DynamicClientRegistration\RPRegistrationDynamic::class,
231
            // Response Type And Response Mode
232
            RpTest\ResponseTypeAndResponseMode\RPResponseModeFormPostErrorTest::class,
233
            RpTest\ResponseTypeAndResponseMode\RPResponseModeFormPostTest::class,
234
            // request_uri Request Parameter
235
            // - rp-request_uri-enc
236
            // - rp-request_uri-sig
237
            // - rp-request_uri-sig+enc
238
            // - rp-request_uri-unsigned
239
            // Client Authentication
240
            // - rp-token_endpoint-client_secret_post
241
            // ID Token
242
            RpTest\IdToken\RpIdTokenSigEncTest::class,
243
            RpTest\IdToken\RpIdTokenSigHS256Test::class,
244
            RpTest\IdToken\RpIdTokenSigES256Test::class,
245
            RpTest\IdToken\RpIdTokenSigEncA128KWTest::class,
246
            RpTest\IdToken\RpIdTokenBadSigHS256Test::class,
247
            RpTest\IdToken\RpIdTokenBadSigES256Test::class,
248
            // UserInfo Endpoint
249
            RpTest\UserInfoEndpoint\RPUserInfoSigTest::class,
250
            RpTest\UserInfoEndpoint\RpUserInfoBearerBodyTest::class,
251
            RpTest\UserInfoEndpoint\RPUserInfoSigEncTest::class,
252
            RpTest\UserInfoEndpoint\RPUserInfoEncTest::class,
253
            // Key Rotation
254
            RpTest\KeyRotation\RPKeyRotationOPSignKeyNativeTest::class,
255
            RpTest\KeyRotation\RPKeyRotationOPSignKeyTest::class,
256
            RpTest\KeyRotation\RPKeyRotationOPEncKeyTest::class,
257
            // Claims Types
258
            RpTest\ClaimsTypes\RPClaimsDistributedTest::class,
259
            RpTest\ClaimsTypes\RPClaimsAggregatedTest::class,
260
        ],
261
        TestInfo::PROFILE_IMPLICIT_IDTOKEN => [
262
            RpTest\ResponseTypeAndResponseMode\RPResponseTypeIdTokenTest::class,
263
            RpTest\ScopeRequestParameter\RpScopeUserinfoClaimsTest::class,
264
            RpTest\NonceRequestParameter\RpNonceInvalidTest::class,
265
            RpTest\NonceRequestParameter\RpNonceUnlessCodeFlowTest::class,
266
            RpTest\IdToken\RpIdTokenKidAbsentSingleJwksTest::class,
267
            RpTest\IdToken\RpIdTokenIatTest::class,
268
            RpTest\IdToken\RpIdTokenAudTest::class,
269
            RpTest\IdToken\RpIdTokenKidAbsentMultipleJwksTest::class,
270
            RpTest\IdToken\RpIdTokenSigRS256Test::class,
271
            RpTest\IdToken\RpIdTokenSubTest::class,
272
            RpTest\IdToken\RpIdTokenBadSigRS256Test::class,
273
            RpTest\IdToken\RpIdTokenIssuerMismatchTest::class,
274
            // optional
275
            // Discovery
276
            RpTest\Discovery\RPDiscoveryWebFingerAcct::class,
277
            RpTest\Discovery\RPDiscoveryWebFingerUrl::class,
278
            RpTest\Discovery\RPDiscoveryOpenIdConfiguration::class,
279
            RpTest\Discovery\RPDiscoveryJwksUriKeys::class,
280
            RpTest\Discovery\RPDiscoveryIssuerNotMatchingConfig::class,
281
            RpTest\Discovery\RPDiscoveryWebFingerUnknownMember::class,
282
            // Dynamic client registration
283
            RpTest\DynamicClientRegistration\RPRegistrationDynamic::class,
284
            // Response Type And Response Mode
285
            RpTest\ResponseTypeAndResponseMode\RPResponseModeFormPostErrorTest::class,
286
            RpTest\ResponseTypeAndResponseMode\RPResponseModeFormPostTest::class,
287
            // request_uri Request Parameter
288
            // - rp-request_uri-enc
289
            // - rp-request_uri-sig
290
            // - rp-request_uri-sig+enc
291
            // - rp-request_uri-unsigned
292
            // Client Authentication
293
            // - rp-token_endpoint-client_secret_post
294
            // ID Token
295
            RpTest\IdToken\RpIdTokenSigEncTest::class,
296
            RpTest\IdToken\RpIdTokenSigHS256Test::class,
297
            RpTest\IdToken\RpIdTokenSigES256Test::class,
298
            RpTest\IdToken\RpIdTokenSigEncA128KWTest::class,
299
            RpTest\IdToken\RpIdTokenBadSigHS256Test::class,
300
            RpTest\IdToken\RpIdTokenBadSigES256Test::class,
301
            // Key Rotation
302
            RpTest\KeyRotation\RPKeyRotationOPSignKeyNativeTest::class,
303
            RpTest\KeyRotation\RPKeyRotationOPSignKeyTest::class,
304
            RpTest\KeyRotation\RPKeyRotationOPEncKeyTest::class,
305
        ],
306
        TestInfo::PROFILE_IMPLICIT_IDTOKEN_TOKEN => [
307
            RpTest\ResponseTypeAndResponseMode\RPResponseTypeIdTokenTokenTest::class,
308
            RpTest\ScopeRequestParameter\RpScopeUserinfoClaimsTest::class,
309
            RpTest\NonceRequestParameter\RpNonceInvalidTest::class,
310
            RpTest\NonceRequestParameter\RpNonceUnlessCodeFlowTest::class,
311
            RpTest\IdToken\RpIdTokenKidAbsentSingleJwksTest::class,
312
            RpTest\IdToken\RpIdTokenIatTest::class,
313
            RpTest\IdToken\RpIdTokenAudTest::class,
314
            RpTest\IdToken\RpIdTokenKidAbsentMultipleJwksTest::class,
315
            RpTest\IdToken\RpIdTokenMissingAtHashTest::class,
316
            RpTest\IdToken\RpIdTokenSigRS256Test::class,
317
            RpTest\IdToken\RPIdTokenBadAtHashTest::class,
318
            RpTest\IdToken\RpIdTokenSubTest::class,
319
            RpTest\IdToken\RpIdTokenBadSigRS256Test::class,
320
            RpTest\IdToken\RpIdTokenIssuerMismatchTest::class,
321
            RpTest\UserInfoEndpoint\RpUserInfoBadSubClaimTest::class,
322
            RpTest\UserInfoEndpoint\RpUserInfoBearerHeaderTest::class,
323
            // optional
324
            // Discovery
325
            RpTest\Discovery\RPDiscoveryWebFingerAcct::class,
326
            RpTest\Discovery\RPDiscoveryWebFingerUrl::class,
327
            RpTest\Discovery\RPDiscoveryOpenIdConfiguration::class,
328
            RpTest\Discovery\RPDiscoveryJwksUriKeys::class,
329
            RpTest\Discovery\RPDiscoveryIssuerNotMatchingConfig::class,
330
            RpTest\Discovery\RPDiscoveryWebFingerUnknownMember::class,
331
            // Dynamic client registration
332
            RpTest\DynamicClientRegistration\RPRegistrationDynamic::class,
333
            // Response Type And Response Mode
334
            RpTest\ResponseTypeAndResponseMode\RPResponseModeFormPostErrorTest::class,
335
            RpTest\ResponseTypeAndResponseMode\RPResponseModeFormPostTest::class,
336
            // request_uri Request Parameter
337
            // - rp-request_uri-enc
338
            // - rp-request_uri-sig
339
            // - rp-request_uri-sig+enc
340
            // - rp-request_uri-unsigned
341
            // Client Authentication
342
            // - rp-token_endpoint-client_secret_post
343
            // ID Token
344
            RpTest\IdToken\RpIdTokenSigEncTest::class,
345
            RpTest\IdToken\RpIdTokenSigHS256Test::class,
346
            RpTest\IdToken\RpIdTokenSigES256Test::class,
347
            RpTest\IdToken\RpIdTokenSigEncA128KWTest::class,
348
            RpTest\IdToken\RpIdTokenBadSigHS256Test::class,
349
            RpTest\IdToken\RpIdTokenBadSigES256Test::class,
350
            // UserInfo Endpoint
351
            RpTest\UserInfoEndpoint\RPUserInfoSigTest::class,
352
            RpTest\UserInfoEndpoint\RpUserInfoBearerBodyTest::class,
353
            RpTest\UserInfoEndpoint\RPUserInfoSigEncTest::class,
354
            RpTest\UserInfoEndpoint\RPUserInfoEncTest::class,
355
            // Key Rotation
356
            RpTest\KeyRotation\RPKeyRotationOPSignKeyNativeTest::class,
357
            RpTest\KeyRotation\RPKeyRotationOPSignKeyTest::class,
358
            RpTest\KeyRotation\RPKeyRotationOPEncKeyTest::class,
359
            // Claims Types
360
            RpTest\ClaimsTypes\RPClaimsDistributedTest::class,
361
            RpTest\ClaimsTypes\RPClaimsAggregatedTest::class,
362
        ],
363
        TestInfo::PROFILE_CONFIGURATION => [
364
            // Discovery
365
            RpTest\Discovery\RPDiscoveryOpenIdConfiguration::class,
366
            RpTest\Discovery\RPDiscoveryJwksUriKeys::class,
367
            RpTest\Discovery\RPDiscoveryIssuerNotMatchingConfig::class,
368
            // ID Token
369
            RpTest\IdToken\RpIdTokenSigNoneTest::class,
370
            // Key Rotation
371
            RpTest\KeyRotation\RPKeyRotationOPSignKeyNativeTest::class,
372
            RpTest\KeyRotation\RPKeyRotationOPSignKeyTest::class,
373
        ],
374
        TestInfo::PROFILE_DYNAMIC => [
375
            // Discovery
376
            RpTest\Discovery\RPDiscoveryWebFingerAcct::class,
377
            RpTest\Discovery\RPDiscoveryWebFingerUrl::class,
378
            RpTest\Discovery\RPDiscoveryOpenIdConfiguration::class,
379
            RpTest\Discovery\RPDiscoveryJwksUriKeys::class,
380
            RpTest\Discovery\RPDiscoveryIssuerNotMatchingConfig::class,
381
            // Dynamic client registration
382
            RpTest\DynamicClientRegistration\RPRegistrationDynamic::class,
383
            // ID Token
384
            RpTest\IdToken\RpIdTokenSigNoneTest::class,
385
            // UserInfo Endpoint
386
            RpTest\UserInfoEndpoint\RPUserInfoSigTest::class,
387
            // Key Rotation
388
            RpTest\KeyRotation\RPKeyRotationOPSignKeyNativeTest::class,
389
            RpTest\KeyRotation\RPKeyRotationOPSignKeyTest::class,
390
        ],
391
    ];
392
393
    /**
394
     * ProfileTestsProvider constructor.
395
     * @param ContainerInterface $container
396
     */
397
    public function __construct(ContainerInterface $container)
398
    {
399
        $this->container = $container;
400
    }
401
402
    public function getAvailableProfiles(): array
403
    {
404
        return \array_keys(static::$testMap);
0 ignored issues
show
Bug introduced by
Since $testMap is declared private, accessing it with static will lead to errors in possible sub-classes; you can either use self, or increase the visibility of $testMap to at least protected.
Loading history...
405
    }
406
407
    public function getResponseTypeForProfile(string $profile): string
408
    {
409
        $responseType = static::$responseTypeMap[$profile] ?? null;
0 ignored issues
show
Bug introduced by
Since $responseTypeMap is declared private, accessing it with static will lead to errors in possible sub-classes; you can either use self, or increase the visibility of $responseTypeMap to at least protected.
Loading history...
410
411
        if (null === $responseType) {
412
            throw new InvalidArgumentException('No response type for profile ' . $profile);
413
        }
414
415
        return $responseType;
416
    }
417
418
    /**
419
     * @param string $profile
420
     * @return RpTestInterface[]
421
     */
422
    public function getTests(string $profile): array
423
    {
424
        return \array_map([$this->container, 'get'], static::$testMap[$profile] ?? []);
0 ignored issues
show
Bug introduced by
Since $testMap is declared private, accessing it with static will lead to errors in possible sub-classes; you can either use self, or increase the visibility of $testMap to at least protected.
Loading history...
425
    }
426
}
427