Skip to content

Commit 384bd6e

Browse files
committed
Enable adding additional data to JwkDecorator
1 parent 31b67e5 commit 384bd6e

3 files changed

Lines changed: 22 additions & 10 deletions

File tree

src/Jwk/Factories/JwkDecoratorFactory.php

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ public function fromData(array $data): JwkDecorator
2323

2424
/**
2525
* @param non-empty-string $path
26-
* @param mixed[] $additionalData
26+
* @param array<non-empty-string,mixed> $additionalData
2727
*/
2828
public function fromPkcs1Or8KeyFile(
2929
string $path,
@@ -39,7 +39,7 @@ public function fromPkcs1Or8KeyFile(
3939

4040
/**
4141
* @param non-empty-string $key
42-
* @param mixed[] $additionalData
42+
* @param array<non-empty-string,mixed> $additionalData
4343
*/
4444
public function fromPkcs1Or8Key(
4545
string $key,
@@ -55,7 +55,7 @@ public function fromPkcs1Or8Key(
5555

5656
/**
5757
* @param non-empty-string $path
58-
* @param mixed[] $additionalData
58+
* @param array<non-empty-string,mixed> $additionalData
5959
*/
6060
public function fromPkcs12CertificateFile(
6161
string $path,
@@ -71,7 +71,7 @@ public function fromPkcs12CertificateFile(
7171

7272
/**
7373
* @param non-empty-string $path
74-
* @param mixed[] $additionalData
74+
* @param array<non-empty-string,mixed> $additionalData
7575
*/
7676
public function fromX509CertificateFile(
7777
string $path,
@@ -86,7 +86,7 @@ public function fromX509CertificateFile(
8686

8787
/**
8888
* @param non-empty-string $certificate
89-
* @param mixed[] $additionalData
89+
* @param array<non-empty-string,mixed> $additionalData
9090
*/
9191
public function fromX509Certificate(
9292
string $certificate,

src/Jwk/JwkDecorator.php

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,11 @@
99
class JwkDecorator implements \JsonSerializable
1010
{
1111
/**
12-
* @param mixed[] $additionalData
12+
* @param array<non-empty-string,mixed> $additionalData
1313
*/
1414
public function __construct(
1515
protected readonly JWK $jwk,
16-
protected readonly array $additionalData = [],
16+
protected array $additionalData = [],
1717
) {
1818
}
1919

@@ -25,14 +25,23 @@ public function jwk(): JWK
2525

2626

2727
/**
28-
* @return mixed[]
28+
* @return array<non-empty-string,mixed>
2929
*/
3030
public function getAdditionalData(): array
3131
{
3232
return $this->additionalData;
3333
}
3434

3535

36+
/**
37+
* @param non-empty-string $key
38+
*/
39+
public function addAdditionalData(string $key, mixed $value): void
40+
{
41+
$this->additionalData[$key] = $value;
42+
}
43+
44+
3645
/**
3746
* @return mixed[]
3847
*/

tests/src/Jwk/JwkDecoratorTest.php

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -53,11 +53,14 @@ public function testCanGetJwk(): void
5353
}
5454

5555

56-
public function testCanGetAdditionalData(): void
56+
public function testCanGetAndSetAdditionalData(): void
5757
{
5858
$this->additionalData = ['foo' => 'bar'];
59+
$sut = $this->sut();
60+
$this->assertSame($this->additionalData, $sut->getAdditionalData());
5961

60-
$this->assertSame($this->additionalData, $this->sut()->getAdditionalData());
62+
$sut->addAdditionalData('baz', 'qux');
63+
$this->assertSame(['foo' => 'bar', 'baz' => 'qux'], $sut->getAdditionalData());
6164
}
6265

6366

0 commit comments

Comments
 (0)