Skip to content

Commit 900993a

Browse files
committed
Add unit-tests for OpenIdConnectMetadata enum class.
1 parent 3c4d450 commit 900993a

2 files changed

Lines changed: 150 additions & 0 deletions

File tree

Lines changed: 91 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,91 @@
1+
<?php
2+
3+
namespace Pdsinterop\Solid\Auth\Enum;
4+
5+
use PHPUnit\Framework\TestCase;
6+
7+
abstract class AbstractEnumTest extends TestCase
8+
{
9+
public const TEST_VALUE = 'test';
10+
11+
/** @var AbstractEnum */
12+
private $enum;
13+
14+
/** @return AbstractEnum */
15+
abstract public function getEnum();
16+
17+
/** @return string[] */
18+
abstract public function getExpectedValues() : array;
19+
20+
abstract public function getTestValue() : string;
21+
22+
final public function setUp() : void
23+
{
24+
$this->enum = $this->getEnum();
25+
}
26+
27+
final public function testEnumShouldBeCreatedWhenInstantiated() : void
28+
{
29+
$actual = $this->enum;
30+
31+
self::assertInstanceOf(AbstractEnum::class, $actual);
32+
}
33+
34+
final public function testEnumShouldReturnTrueWhenStaticallyAskedForDeclaredEnum() : void
35+
{
36+
$enum = $this->enum;
37+
38+
$actual = $enum::has($this->getTestValue());
39+
40+
self::assertTrue($actual);
41+
}
42+
43+
final public function testEnumShouldReturnFalseWhenStaticallyAskedForUndeclaredEnum() : void
44+
{
45+
$enum = $this->enum;
46+
47+
$actual = $enum::has('non-existing');
48+
49+
self::assertFalse($actual);
50+
}
51+
52+
final public function testEnumShouldReturnTrueWhenAskedForDeclaredEnum() : void
53+
{
54+
$enum = $this->enum;
55+
$actual = $enum->hasValue(static::TEST_VALUE);
56+
57+
self::assertTrue($actual);
58+
}
59+
60+
final public function testEnumShouldReturnFalseWhenAskedForUndeclaredEnum() : void
61+
{
62+
$enum = $this->enum;
63+
64+
$actual = $enum->hasValue('non-existing');
65+
66+
self::assertFalse($actual);
67+
}
68+
69+
final public function testEnumShouldReturnArrayWhenAskedForValues() : array
70+
{
71+
$enum = $this->enum;
72+
73+
$actual = $enum->getValues();
74+
75+
self::assertIsArray($actual);
76+
77+
return $actual;
78+
}
79+
80+
/**
81+
* @param array $actual
82+
*
83+
* @depends testEnumShouldReturnArrayWhenAskedForValues
84+
*/
85+
final public function testEnumValuesShouldMatchExpectedValues(array $actual) : void
86+
{
87+
$expected = $this->getExpectedValues();
88+
89+
self::assertEquals($actual, $expected);
90+
}
91+
}
Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
<?php
2+
3+
namespace Pdsinterop\Solid\Auth\Enum\OpenId;
4+
5+
use Pdsinterop\Solid\Auth\Enum\AbstractEnumTest as TestCase;
6+
7+
class OpenIdConnectMetadataTest extends TestCase
8+
{
9+
final public function getEnum() : OpenIdConnectMetadata
10+
{
11+
return new OpenIdConnectMetadata();
12+
}
13+
14+
final public function getExpectedValues() : array
15+
{
16+
return [
17+
'acr_values_supported',
18+
'authorization_endpoint',
19+
'claim_types_supported',
20+
'claims_locales_supported',
21+
'claims_parameter_supported',
22+
'claims_supported',
23+
'display_values_supported',
24+
'grant_types_supported',
25+
'id_token_encryption_alg_values_supported',
26+
'id_token_encryption_enc_values_supported',
27+
'id_token_signing_alg_values_supported',
28+
'issuer',
29+
'jwks_uri',
30+
'op_policy_uri',
31+
'op_tos_uri',
32+
'registration_endpoint',
33+
'request_object_encryption_alg_values_supported',
34+
'request_object_encryption_enc_values_supported',
35+
'request_object_signing_alg_values_supported',
36+
'request_parameter_supported',
37+
'request_uri_parameter_supported',
38+
'require_request_uri_registration',
39+
'response_modes_supported',
40+
'response_types_supported',
41+
'scopes_supported',
42+
'service_documentation',
43+
'subject_types_supported',
44+
'token_endpoint',
45+
'token_endpoint_auth_methods_supported',
46+
'token_endpoint_auth_signing_alg_values_supported',
47+
'ui_locales_supported',
48+
'userinfo_encryption_alg_values_supported',
49+
'userinfo_encryption_enc_values_supported',
50+
'userinfo_endpoint',
51+
'userinfo_signing_alg_values_supported',
52+
];
53+
}
54+
55+
final public function getTestValue() : string
56+
{
57+
return OpenIdConnectMetadata::AUTHORIZATION_ENDPOINT;
58+
}
59+
}

0 commit comments

Comments
 (0)