Skip to content

Commit f337502

Browse files
committed
Fix Alias/TermDeserializers failing on numeric array keys
1 parent 022c336 commit f337502

4 files changed

Lines changed: 11 additions & 6 deletions

File tree

src/Deserializers/AliasGroupListDeserializer.php

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -66,10 +66,7 @@ private function deserializeAliasGroup( array $serialization, $languageCode ) {
6666
$aliases[] = $aliasSerialization['value'];
6767
}
6868

69-
return new AliasGroup(
70-
$languageCode,
71-
$aliases
72-
);
69+
return new AliasGroup( (string)$languageCode, $aliases );
7370
}
7471

7572
private function assertIsValidAliasSerialization( $serialization, $requestedLanguage ) {
@@ -109,7 +106,7 @@ private function assertRequestedAndActualLanguageMatch(
109106
array $serialization,
110107
$requestedLanguage
111108
) {
112-
if ( $serialization['language'] !== $requestedLanguage ) {
109+
if ( strcmp( $serialization['language'], $requestedLanguage ) !== 0 ) {
113110
throw new DeserializationException(
114111
'Deserialization of a value of the attribute language (actual)'
115112
. ' that is not matching the language key (requested) is not supported: '

src/Deserializers/TermListDeserializer.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ private function assertRequestedAndActualLanguageMatch(
6666
array $serialization,
6767
$requestedLanguage
6868
) {
69-
if ( $serialization['language'] !== $requestedLanguage ) {
69+
if ( strcmp( $serialization['language'], $requestedLanguage ) !== 0 ) {
7070
throw new DeserializationException(
7171
'Deserialization of a value of the attribute language (actual)'
7272
. ' that is not matching the language key (requested) is not supported: '

tests/unit/Deserializers/AliasGroupListDeserializerTest.php

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,10 @@ public function deserializationProvider() {
8787
[ 'language' => 'en', 'value' => 'B' ],
8888
] ],
8989
],
90+
'Matching numeric keys' => [
91+
new AliasGroupList( [ new AliasGroup( '8', [ 'Eight' ] ) ] ),
92+
[ '8' => [ [ 'language' => '8', 'value' => 'Eight' ] ] ],
93+
],
9094
];
9195
}
9296

tests/unit/Deserializers/TermListDeserializerTest.php

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,10 @@ public function deserializationProvider() {
8989
'de' => [ 'language' => 'de', 'value' => 'Delama' ],
9090
],
9191
],
92+
'Matching numeric keys' => [
93+
new TermList( [ new Term( '8', 'Eight' ) ] ),
94+
[ '8' => [ 'language' => '8', 'value' => 'Eight' ] ],
95+
],
9296
];
9397
}
9498

0 commit comments

Comments
 (0)