Skip to content

Commit 9ee118c

Browse files
Raj MohanRaj Mohan
authored andcommitted
AC-12092_PHPUnit10: PHP Unit10 Deprecation Fixes for Framework Code, Jwt and Test Modules
1 parent 36752e2 commit 9ee118c

File tree

4 files changed

+121
-91
lines changed

4 files changed

+121
-91
lines changed

lib/internal/Magento/Framework/Code/Test/Unit/GeneratorTest.php

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -341,10 +341,15 @@ public static function trueFalseDataProvider(): array
341341
*
342342
* @return array
343343
*/
344-
public function generateValidClassDataProvider(): array
344+
public static function generateValidClassDataProvider(): array
345345
{
346+
$expectedEntities = [
347+
'factory' => Factory::ENTITY_TYPE,
348+
'proxy' => Proxy::ENTITY_TYPE,
349+
'interceptor' => Interceptor::ENTITY_TYPE,
350+
];
346351
$data = [];
347-
foreach ($this->expectedEntities as $generatedEntity) {
352+
foreach ($expectedEntities as $generatedEntity) {
348353
$generatedEntity = ucfirst($generatedEntity);
349354
$data['test class for ' . $generatedEntity] = [
350355
'className' => self::SOURCE_CLASS,

lib/internal/Magento/Framework/Jwt/Test/Unit/Jwe/JweEncryptionJwksTest.php

Lines changed: 41 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -18,27 +18,27 @@
1818

1919
class JweEncryptionJwksTest extends TestCase
2020
{
21-
public function getConstructorCases(): array
21+
public static function getConstructorCases(): array
2222
{
2323
return [
24-
'valid-jwk' => [$this->createJwk(Jwk::PUBLIC_KEY_USE_ENCRYPTION), true],
24+
'valid-jwk' => [['use' => Jwk::PUBLIC_KEY_USE_ENCRYPTION], true],
2525
'valid-jwks' => [
26-
$this->createJwkSet(
26+
[
2727
[
28-
$this->createJwk(Jwk::PUBLIC_KEY_USE_ENCRYPTION),
29-
$this->createJwk(Jwk::PUBLIC_KEY_USE_ENCRYPTION)
28+
['use' => Jwk::PUBLIC_KEY_USE_ENCRYPTION],
29+
['use' => Jwk::PUBLIC_KEY_USE_ENCRYPTION]
3030
]
31-
),
31+
],
3232
true
3333
],
34-
'invalid-jwk' => [$this->createJwk(Jwk::PUBLIC_KEY_USE_SIGNATURE), false],
34+
'invalid-jwk' => [['use' => Jwk::PUBLIC_KEY_USE_SIGNATURE], false],
3535
'invalid-jwks' => [
36-
$this->createJwkSet(
36+
[
3737
[
38-
$this->createJwk(Jwk::PUBLIC_KEY_USE_SIGNATURE),
39-
$this->createJwk(Jwk::PUBLIC_KEY_USE_ENCRYPTION)
38+
['use' => Jwk::PUBLIC_KEY_USE_SIGNATURE],
39+
['use' => Jwk::PUBLIC_KEY_USE_ENCRYPTION]
4040
]
41-
),
41+
],
4242
false
4343
]
4444
];
@@ -52,29 +52,39 @@ public function getConstructorCases(): array
5252
* @return void
5353
* @dataProvider getConstructorCases
5454
*/
55-
public function testConstruct($jwks, $valid): void
55+
public function testConstruct(array $jwkData, bool $valid): void
5656
{
57+
if (isset($jwkData[0]) && is_array($jwkData[0])) {
58+
$jwks = array_map(function ($data) {
59+
return $this->createJwk($data['use']);
60+
}, $jwkData[0]);
61+
$jwkSet = $this->createJwkSet($jwks);
62+
$jwksObject = $jwkSet;
63+
} else {
64+
$jwksObject = $this->createJwk($jwkData['use']);
65+
}
66+
5767
if (!$valid) {
5868
$this->expectException(EncryptionException::class);
5969
}
6070

61-
new JweEncryptionJwks($jwks, JweEncryptionSettingsInterface::CONTENT_ENCRYPTION_ALGO_A128GCM);
71+
new JweEncryptionJwks($jwksObject, JweEncryptionSettingsInterface::CONTENT_ENCRYPTION_ALGO_A128GCM);
6272
}
6373

64-
public function getAlgorithmCases(): array
74+
public static function getAlgorithmCases(): array
6575
{
6676
return [
6777
'one-algo' => [
68-
$this->createJwk(Jwk::PUBLIC_KEY_USE_ENCRYPTION, Jwk::ALGORITHM_RSA_OAEP),
78+
['use' => Jwk::PUBLIC_KEY_USE_ENCRYPTION, 'alg' => Jwk::ALGORITHM_RSA_OAEP],
6979
Jwk::ALGORITHM_RSA_OAEP
7080
],
7181
'json' => [
72-
$this->createJwkSet(
82+
[
7383
[
74-
$this->createJwk(Jwk::PUBLIC_KEY_USE_ENCRYPTION),
75-
$this->createJwk(Jwk::PUBLIC_KEY_USE_ENCRYPTION)
84+
['use' => Jwk::PUBLIC_KEY_USE_ENCRYPTION, 'alg' => Jwk::ALGORITHM_RSA_OAEP],
85+
['use' => Jwk::PUBLIC_KEY_USE_ENCRYPTION, 'alg' => Jwk::ALGORITHM_RSA_OAEP]
7686
]
77-
),
87+
],
7888
'jwe-json-serialization'
7989
],
8090
];
@@ -83,14 +93,23 @@ public function getAlgorithmCases(): array
8393
/**
8494
* Test algorithm logic.
8595
*
86-
* @param Jwk|JwkSet $jwk
96+
* @param array $jwkData
8797
* @param string $expectedName
8898
* @return void
8999
* @dataProvider getAlgorithmCases
90100
*/
91-
public function testGetAlgorithmName($jwk, string $expectedName): void
101+
public function testGetAlgorithmName(array $jwkData, string $expectedName): void
92102
{
93-
$model = new JweEncryptionJwks($jwk, JweEncryptionSettingsInterface::CONTENT_ENCRYPTION_ALGO_A128GCM);
103+
if (isset($jwkData['use'])) {
104+
$jwk = $this->createJwk($jwkData['use'], $jwkData['alg']);
105+
$model = new JweEncryptionJwks($jwk, JweEncryptionSettingsInterface::CONTENT_ENCRYPTION_ALGO_A128GCM);
106+
} else {
107+
$jwks = array_map(function ($data) {
108+
return $this->createJwk($data['use'], $data['alg']);
109+
}, $jwkData[0]);
110+
$jwkSet = $this->createJwkSet($jwks);
111+
$model = new JweEncryptionJwks($jwkSet, JweEncryptionSettingsInterface::CONTENT_ENCRYPTION_ALGO_A128GCM);
112+
}
94113

95114
$this->assertEquals($expectedName, $model->getAlgorithmName());
96115
}

lib/internal/Magento/Framework/Jwt/Test/Unit/Jws/JwsSignatureJwksTest.php

Lines changed: 32 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -16,27 +16,17 @@
1616

1717
class JwsSignatureJwksTest extends TestCase
1818
{
19-
public function getConstructorCases(): array
19+
public static function getConstructorCases(): array
2020
{
2121
return [
22-
'valid-jwk' => [$this->createJwk(Jwk::PUBLIC_KEY_USE_SIGNATURE), true],
22+
'valid-jwk' => [Jwk::PUBLIC_KEY_USE_SIGNATURE, true],
2323
'valid-jwks' => [
24-
$this->createJwkSet(
25-
[
26-
$this->createJwk(Jwk::PUBLIC_KEY_USE_SIGNATURE),
27-
$this->createJwk(Jwk::PUBLIC_KEY_USE_SIGNATURE)
28-
]
29-
),
24+
[Jwk::PUBLIC_KEY_USE_SIGNATURE, Jwk::PUBLIC_KEY_USE_SIGNATURE],
3025
true
3126
],
32-
'invalid-jwk' => [$this->createJwk(Jwk::PUBLIC_KEY_USE_ENCRYPTION), false],
27+
'invalid-jwk' => [Jwk::PUBLIC_KEY_USE_ENCRYPTION, false],
3328
'invalid-jwks' => [
34-
$this->createJwkSet(
35-
[
36-
$this->createJwk(Jwk::PUBLIC_KEY_USE_SIGNATURE),
37-
$this->createJwk(Jwk::PUBLIC_KEY_USE_ENCRYPTION)
38-
]
39-
),
29+
[Jwk::PUBLIC_KEY_USE_SIGNATURE, Jwk::PUBLIC_KEY_USE_ENCRYPTION],
4030
false
4131
]
4232
];
@@ -52,42 +42,58 @@ public function getConstructorCases(): array
5242
*/
5343
public function testConstruct($jwks, $valid): void
5444
{
45+
if (is_array($jwks)) {
46+
$jwks = array_map(function ($keyUse) {
47+
return $this->createJwk($keyUse);
48+
}, $jwks);
49+
$jwks = $this->createJwkSet($jwks);
50+
} else {
51+
$jwks = $this->createJwk($jwks);
52+
}
53+
5554
if (!$valid) {
5655
$this->expectException(EncryptionException::class);
5756
}
5857

5958
new JwsSignatureJwks($jwks);
6059
}
6160

62-
public function getAlgorithmCases(): array
61+
public static function getAlgorithmCases(): array
6362
{
6463
return [
6564
'one-algo' => [
66-
$this->createJwk(Jwk::PUBLIC_KEY_USE_SIGNATURE, Jwk::ALGORITHM_HS384),
65+
[Jwk::PUBLIC_KEY_USE_SIGNATURE, Jwk::ALGORITHM_HS384],
6766
Jwk::ALGORITHM_HS384
6867
],
6968
'json' => [
70-
$this->createJwkSet(
71-
[
72-
$this->createJwk(Jwk::PUBLIC_KEY_USE_SIGNATURE),
73-
$this->createJwk(Jwk::PUBLIC_KEY_USE_SIGNATURE)
74-
]
75-
),
69+
[
70+
[Jwk::PUBLIC_KEY_USE_SIGNATURE, Jwk::ALGORITHM_HS256],
71+
[Jwk::PUBLIC_KEY_USE_SIGNATURE, Jwk::ALGORITHM_HS256]
72+
],
7673
'jws-json-serialization'
77-
],
74+
]
7875
];
7976
}
8077

8178
/**
8279
* Test algorithm logic.
8380
*
84-
* @param Jwk|JwkSet $jwk
81+
* @param array $jwksData
8582
* @param string $expectedName
8683
* @return void
8784
* @dataProvider getAlgorithmCases
8885
*/
89-
public function testGetAlgorithmName($jwk, string $expectedName): void
86+
public function testGetAlgorithmName(array $jwkData, string $expectedName): void
9087
{
88+
if (is_array($jwkData[0])) {
89+
$jwks = array_map(function ($data) {
90+
return $this->createJwk($data[0], $data[1]);
91+
}, $jwkData);
92+
$jwk = $this->createJwkSet($jwks);
93+
} else {
94+
$jwk = $this->createJwk($jwkData[0], $jwkData[1]);
95+
}
96+
9197
$model = new JwsSignatureJwks($jwk);
9298

9399
$this->assertEquals($expectedName, $model->getAlgorithmName());

lib/internal/Magento/Framework/Test/Unit/ValidatorTest.php

Lines changed: 41 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -48,18 +48,24 @@ protected function tearDown(): void
4848
* @dataProvider isValidDataProvider
4949
*
5050
* @param mixed $value
51-
* @param ValidatorInterface[] $validators
51+
* @param array $validatorsClosure
5252
* @param boolean $expectedResult
5353
* @param array $expectedMessages
5454
* @param boolean $breakChainOnFailure
5555
*/
5656
public function testIsValid(
5757
$value,
58-
$validators,
58+
$validatorsClosure,
5959
$expectedResult,
6060
$expectedMessages = [],
6161
$breakChainOnFailure = false
6262
) {
63+
$validators = [];
64+
foreach ($validatorsClosure as $key => $validator) {
65+
if (is_callable($validator)) {
66+
$validators[$key] = $validator($this);
67+
}
68+
}
6369
foreach ($validators as $validator) {
6470
$this->_validator->addValidator($validator, $breakChainOnFailure);
6571
}
@@ -73,31 +79,16 @@ public function testIsValid(
7379
*
7480
* @return array
7581
*/
76-
public function isValidDataProvider()
82+
public static function isValidDataProvider()
7783
{
7884
$result = [];
7985
$value = 'test';
86+
$dataA = ['foo' => ['Foo message 1'], 'bar' => ['Foo message 2']];
87+
$dataB = ['foo' => ['Bar message 1'], 'bar' => ['Bar message 2']];
8088

8189
// Case 1. Validators fails without breaking chain
82-
$validatorA = $this->getMockForAbstractClass(ValidatorInterface::class);
83-
$validatorA->expects($this->once())->method('isValid')->with($value)->willReturn(false);
84-
$validatorA->expects(
85-
$this->once()
86-
)->method(
87-
'getMessages'
88-
)->willReturn(
89-
['foo' => ['Foo message 1'], 'bar' => ['Foo message 2']]
90-
);
91-
92-
$validatorB = $this->getMockForAbstractClass(ValidatorInterface::class);
93-
$validatorB->expects($this->once())->method('isValid')->with($value)->willReturn(false);
94-
$validatorB->expects(
95-
$this->once()
96-
)->method(
97-
'getMessages'
98-
)->willReturn(
99-
['foo' => ['Bar message 1'], 'bar' => ['Bar message 2']]
100-
);
90+
$validatorA = static fn (self $testCase) => $testCase->getValidatorMock($dataA, $value);
91+
$validatorB = static fn (self $testCase) => $testCase->getValidatorMock($dataB, $value);
10192

10293
$result[] = [
10394
$value,
@@ -107,35 +98,44 @@ public function isValidDataProvider()
10798
];
10899

109100
// Case 2. Validators fails with breaking chain
110-
$validatorA = $this->getMockForAbstractClass(ValidatorInterface::class);
111-
$validatorA->expects($this->once())->method('isValid')->with($value)->willReturn(false);
112-
$validatorA->expects(
113-
$this->once()
114-
)->method(
115-
'getMessages'
116-
)->willReturn(
117-
['field' => 'Error message']
118-
);
119-
120-
$validatorB = $this->getMockForAbstractClass(ValidatorInterface::class);
121-
$validatorB->expects($this->never())->method('isValid');
101+
$dataC = ['field' => 'Error message'];
102+
$validatorA = static fn (self $testCase) => $testCase->getValidatorMock($dataC, $value);
103+
$validatorB = static fn (self $testCase) => $testCase->getValidatorMockWithExpectsNever();
122104

123105
$result[] = [$value, [$validatorA, $validatorB], false, ['field' => 'Error message'], true];
124106

125107
// Case 3. Validators succeed
126-
$validatorA = $this->getMockForAbstractClass(ValidatorInterface::class);
127-
$validatorA->expects($this->once())->method('isValid')->with($value)->willReturn(true);
128-
$validatorA->expects($this->never())->method('getMessages');
129-
130-
$validatorB = $this->getMockForAbstractClass(ValidatorInterface::class);
131-
$validatorB->expects($this->once())->method('isValid')->with($value)->willReturn(true);
132-
$validatorB->expects($this->never())->method('getMessages');
108+
$validatorA = static fn (self $testCase) => $testCase->getValidatorMockWithValidatorsSucceed($value);
109+
$validatorB = static fn (self $testCase) => $testCase->getValidatorMockWithValidatorsSucceed($value);
133110

134111
$result[] = [$value, [$validatorA, $validatorB], true];
135112

136113
return $result;
137114
}
138115

116+
public function getValidatorMock($data, $value)
117+
{
118+
$validatorMock = $this->getMockForAbstractClass(ValidatorInterface::class);
119+
$validatorMock->expects($this->once())->method('isValid')->with($value)->willReturn(false);
120+
$validatorMock->expects($this->once())->method('getMessages')->willReturn($data);
121+
return $validatorMock;
122+
}
123+
124+
public function getValidatorMockWithExpectsNever()
125+
{
126+
$validatorMock = $this->getMockForAbstractClass(ValidatorInterface::class);
127+
$validatorMock->expects($this->never())->method('isValid');
128+
return $validatorMock;
129+
}
130+
131+
public function getValidatorMockWithValidatorsSucceed($value)
132+
{
133+
$validatorMock = $this->getMockForAbstractClass(ValidatorInterface::class);
134+
$validatorMock->expects($this->once())->method('isValid')->with($value)->willReturn(true);
135+
$validatorMock->expects($this->never())->method('getMessages');
136+
return $validatorMock;
137+
}
138+
139139
/**
140140
* Test addValidator
141141
*/

0 commit comments

Comments
 (0)