Skip to content

Commit 6b673b8

Browse files
committed
Merge branch '4.4' into 5.1
* 4.4: Fix tests [Lock] Fix StoreFactory to accept same DSN syntax as AbstractAdapter [Serializer][Minor] Fix exception message
2 parents acffef3 + 8e97a9c commit 6b673b8

File tree

4 files changed

+24
-11
lines changed

4 files changed

+24
-11
lines changed

Tests/Normalizer/Features/CircularReferenceTestTrait.php

Lines changed: 18 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,23 +10,36 @@
1010
*/
1111
trait CircularReferenceTestTrait
1212
{
13-
abstract protected function getNormalizerForCircularReference(): NormalizerInterface;
13+
abstract protected function getNormalizerForCircularReference(array $defaultContext): NormalizerInterface;
1414

1515
abstract protected function getSelfReferencingModel();
1616

17-
public function testUnableToNormalizeCircularReference()
17+
public function provideUnableToNormalizeCircularReference(): array
1818
{
19-
$normalizer = $this->getNormalizerForCircularReference();
19+
return [
20+
[[], [], 1],
21+
[['circular_reference_limit' => 2], [], 2],
22+
[['circular_reference_limit' => 2], ['circular_reference_limit' => 3], 3],
23+
];
24+
}
25+
26+
/**
27+
* @dataProvider provideUnableToNormalizeCircularReference
28+
*/
29+
public function testUnableToNormalizeCircularReference(array $defaultContext, array $context, int $expectedLimit)
30+
{
31+
$normalizer = $this->getNormalizerForCircularReference($defaultContext);
2032

2133
$obj = $this->getSelfReferencingModel();
2234

2335
$this->expectException(CircularReferenceException::class);
24-
$normalizer->normalize($obj, null, ['circular_reference_limit' => 2]);
36+
$this->expectExceptionMessage(sprintf('A circular reference has been detected when serializing the object of class "%s" (configured limit: %d).', \get_class($obj), $expectedLimit));
37+
$normalizer->normalize($obj, null, $context);
2538
}
2639

2740
public function testCircularReferenceHandler()
2841
{
29-
$normalizer = $this->getNormalizerForCircularReference();
42+
$normalizer = $this->getNormalizerForCircularReference([]);
3043

3144
$obj = $this->getSelfReferencingModel();
3245
$expected = ['me' => \get_class($obj)];

Tests/Normalizer/GetSetMethodNormalizerTest.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -231,10 +231,10 @@ protected function getNormalizerForCallbacks(): GetSetMethodNormalizer
231231
return new GetSetMethodNormalizer($classMetadataFactory, new MetadataAwareNameConverter($classMetadataFactory));
232232
}
233233

234-
protected function getNormalizerForCircularReference(): GetSetMethodNormalizer
234+
protected function getNormalizerForCircularReference(array $defaultContext): GetSetMethodNormalizer
235235
{
236236
$classMetadataFactory = new ClassMetadataFactory(new AnnotationLoader(new AnnotationReader()));
237-
$normalizer = new GetSetMethodNormalizer($classMetadataFactory, new MetadataAwareNameConverter($classMetadataFactory));
237+
$normalizer = new GetSetMethodNormalizer($classMetadataFactory, new MetadataAwareNameConverter($classMetadataFactory), null, null, null, $defaultContext);
238238
new Serializer([$normalizer]);
239239

240240
return $normalizer;

Tests/Normalizer/ObjectNormalizerTest.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -338,9 +338,9 @@ protected function getNormalizerForCallbacks(): ObjectNormalizer
338338

339339
// circular reference
340340

341-
protected function getNormalizerForCircularReference(): ObjectNormalizer
341+
protected function getNormalizerForCircularReference(array $defaultContext): ObjectNormalizer
342342
{
343-
$normalizer = new ObjectNormalizer();
343+
$normalizer = new ObjectNormalizer(null, null, null, null, null, null, $defaultContext);
344344
new Serializer([$normalizer]);
345345

346346
return $normalizer;

Tests/Normalizer/PropertyNormalizerTest.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -163,9 +163,9 @@ protected function getNormalizerForCallbacks(): PropertyNormalizer
163163
return new PropertyNormalizer();
164164
}
165165

166-
protected function getNormalizerForCircularReference(): PropertyNormalizer
166+
protected function getNormalizerForCircularReference(array $defaultContext): PropertyNormalizer
167167
{
168-
$normalizer = new PropertyNormalizer();
168+
$normalizer = new PropertyNormalizer(null, null, null, null, null, $defaultContext);
169169
new Serializer([$normalizer]);
170170

171171
return $normalizer;

0 commit comments

Comments
 (0)