Skip to content
This repository was archived by the owner on Mar 12, 2025. It is now read-only.

Commit 0195065

Browse files
authored
chubbyphp-mock-v2 (#26)
1 parent d434e6c commit 0195065

33 files changed

+613
-581
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ A simple serialization.
2727
## Requirements
2828

2929
* php: ^8.2
30-
* chubbyphp/chubbyphp-decode-encode: ^1.1
30+
* chubbyphp/chubbyphp-decode-encode: ^1.2
3131
* doctrine/inflector: ^1.4.4|^2.0.10
3232
* psr/http-message: ^1.1|^2.0
3333
* psr/link: ^1.1.1|^2.0.1

composer.json

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
"ext-dom": "*",
1515
"ext-json": "*",
1616
"ext-mbstring": "*",
17-
"chubbyphp/chubbyphp-decode-encode": "^1.1",
17+
"chubbyphp/chubbyphp-decode-encode": "^1.2",
1818
"doctrine/inflector": "^1.4.4|^2.0.10",
1919
"psr/http-message": "^1.1|^2.0",
2020
"psr/link": "^1.1.1|^2.0.1",
@@ -23,15 +23,15 @@
2323
"require-dev": {
2424
"chubbyphp/chubbyphp-container": "^2.2",
2525
"chubbyphp/chubbyphp-dev-helper": "dev-master",
26-
"chubbyphp/chubbyphp-laminas-config-factory": "^1.3",
27-
"chubbyphp/chubbyphp-mock": "^1.8.0",
26+
"chubbyphp/chubbyphp-laminas-config-factory": "^1.4",
27+
"chubbyphp/chubbyphp-mock": "^2.0@dev",
2828
"doctrine/collections": "^2.2.2",
2929
"doctrine/persistence": "^4.0",
30-
"infection/infection": "^0.29.8",
30+
"infection/infection": "^0.29.12",
3131
"php-coveralls/php-coveralls": "^2.7.0",
3232
"phpstan/extension-installer": "^1.4.3",
33-
"phpstan/phpstan": "^2.0.3",
34-
"phpunit/phpunit": "^11.5.0",
33+
"phpstan/phpstan": "^2.1.6",
34+
"phpunit/phpunit": "^11.5.9",
3535
"pimple/pimple": "^3.5",
3636
"psr/container": "^2.0.2",
3737
"symfony/config": "^5.4.46|^6.4.14|^7.2",

tests/Unit/Mapping/CallableNormalizationObjectMappingTest.php

Lines changed: 37 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@
44

55
namespace Chubbyphp\Tests\Serialization\Unit\Mapping;
66

7-
use Chubbyphp\Mock\Call;
8-
use Chubbyphp\Mock\MockByCallsTrait;
7+
use Chubbyphp\Mock\MockMethod\WithReturn;
8+
use Chubbyphp\Mock\MockObjectBuilder;
99
use Chubbyphp\Serialization\Mapping\CallableNormalizationObjectMapping;
1010
use Chubbyphp\Serialization\Mapping\NormalizationFieldMappingInterface;
1111
use Chubbyphp\Serialization\Mapping\NormalizationLinkMappingInterface;
@@ -19,8 +19,6 @@
1919
*/
2020
final class CallableNormalizationObjectMappingTest extends TestCase
2121
{
22-
use MockByCallsTrait;
23-
2422
public function testGetClass(): void
2523
{
2624
$mapping = new CallableNormalizationObjectMapping(\stdClass::class, static function (): void {});
@@ -30,42 +28,62 @@ public function testGetClass(): void
3028

3129
public function testGetNormalizationType(): void
3230
{
33-
$mapping = new CallableNormalizationObjectMapping(\stdClass::class, fn () => $this->getMockByCalls(NormalizationObjectMappingInterface::class, [
34-
Call::create('getNormalizationType')->with()->willReturn('type'),
35-
]));
31+
$builder = new MockObjectBuilder();
32+
33+
/** @var NormalizationObjectMappingInterface $normalizationObjectMapping */
34+
$normalizationObjectMapping = $builder->create(NormalizationObjectMappingInterface::class, [
35+
new WithReturn('getNormalizationType', [], 'type'),
36+
]);
37+
38+
$mapping = new CallableNormalizationObjectMapping(\stdClass::class, static fn () => $normalizationObjectMapping);
3639

3740
self::assertSame('type', $mapping->getNormalizationType());
3841
}
3942

4043
public function testGetNormalizationFieldMappings(): void
4144
{
42-
$fieldMapping = $this->getMockByCalls(NormalizationFieldMappingInterface::class);
45+
$builder = new MockObjectBuilder();
46+
47+
/** @var NormalizationFieldMappingInterface $fieldMapping */
48+
$fieldMapping = $builder->create(NormalizationFieldMappingInterface::class, []);
49+
50+
$normalizationObjectMapping = $builder->create(NormalizationObjectMappingInterface::class, [
51+
new WithReturn('getNormalizationFieldMappings', ['path'], [$fieldMapping]),
52+
]);
4353

44-
$mapping = new CallableNormalizationObjectMapping(\stdClass::class, fn () => $this->getMockByCalls(NormalizationObjectMappingInterface::class, [
45-
Call::create('getNormalizationFieldMappings')->with('path')->willReturn([$fieldMapping]),
46-
]));
54+
$mapping = new CallableNormalizationObjectMapping(\stdClass::class, static fn () => $normalizationObjectMapping);
4755

4856
self::assertSame($fieldMapping, $mapping->getNormalizationFieldMappings('path')[0]);
4957
}
5058

5159
public function testGetNormalizationEmbeddedFieldMappings(): void
5260
{
53-
$fieldMapping = $this->getMockByCalls(NormalizationFieldMappingInterface::class);
61+
$builder = new MockObjectBuilder();
5462

55-
$mapping = new CallableNormalizationObjectMapping(\stdClass::class, fn () => $this->getMockByCalls(NormalizationObjectMappingInterface::class, [
56-
Call::create('getNormalizationEmbeddedFieldMappings')->with('path')->willReturn([$fieldMapping]),
57-
]));
63+
/** @var NormalizationFieldMappingInterface $fieldMapping */
64+
$fieldMapping = $builder->create(NormalizationFieldMappingInterface::class, []);
65+
66+
$normalizationObjectMapping = $builder->create(NormalizationObjectMappingInterface::class, [
67+
new WithReturn('getNormalizationEmbeddedFieldMappings', ['path'], [$fieldMapping]),
68+
]);
69+
70+
$mapping = new CallableNormalizationObjectMapping(\stdClass::class, static fn () => $normalizationObjectMapping);
5871

5972
self::assertSame($fieldMapping, $mapping->getNormalizationEmbeddedFieldMappings('path')[0]);
6073
}
6174

6275
public function testGetNormalizationLinkMappings(): void
6376
{
64-
$linkMapping = $this->getMockByCalls(NormalizationLinkMappingInterface::class);
77+
$builder = new MockObjectBuilder();
78+
79+
/** @var NormalizationLinkMappingInterface $linkMapping */
80+
$linkMapping = $builder->create(NormalizationLinkMappingInterface::class, []);
81+
82+
$normalizationObjectMapping = $builder->create(NormalizationObjectMappingInterface::class, [
83+
new WithReturn('getNormalizationLinkMappings', ['path'], [$linkMapping]),
84+
]);
6585

66-
$mapping = new CallableNormalizationObjectMapping(\stdClass::class, fn () => $this->getMockByCalls(NormalizationObjectMappingInterface::class, [
67-
Call::create('getNormalizationLinkMappings')->with('path')->willReturn([$linkMapping]),
68-
]));
86+
$mapping = new CallableNormalizationObjectMapping(\stdClass::class, static fn () => $normalizationObjectMapping);
6987

7088
self::assertSame($linkMapping, $mapping->getNormalizationLinkMappings('path')[0]);
7189
}

tests/Unit/Mapping/LazyNormalizationObjectMappingTest.php

Lines changed: 23 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@
44

55
namespace Chubbyphp\Tests\Serialization\Unit\Mapping;
66

7-
use Chubbyphp\Mock\Call;
8-
use Chubbyphp\Mock\MockByCallsTrait;
7+
use Chubbyphp\Mock\MockMethod\WithReturn;
8+
use Chubbyphp\Mock\MockObjectBuilder;
99
use Chubbyphp\Serialization\Mapping\LazyNormalizationObjectMapping;
1010
use Chubbyphp\Serialization\Mapping\NormalizationFieldMappingInterface;
1111
use Chubbyphp\Serialization\Mapping\NormalizationLinkMappingInterface;
@@ -21,36 +21,36 @@
2121
*/
2222
final class LazyNormalizationObjectMappingTest extends TestCase
2323
{
24-
use MockByCallsTrait;
25-
2624
public function testInvoke(): void
2725
{
28-
$normalizationFieldMappings = [$this->getMockByCalls(NormalizationFieldMappingInterface::class)];
26+
$builder = new MockObjectBuilder();
27+
28+
$normalizationFieldMappings = [
29+
$builder->create(NormalizationFieldMappingInterface::class, []),
30+
];
2931

30-
$normalizationEmbeddedFieldMappings = [$this->getMockByCalls(NormalizationFieldMappingInterface::class)];
32+
$normalizationEmbeddedFieldMappings = [
33+
$builder->create(NormalizationFieldMappingInterface::class, []),
34+
];
3135

32-
$normalizationLinkMappings = [$this->getMockByCalls(NormalizationLinkMappingInterface::class)];
36+
$normalizationLinkMappings = [
37+
$builder->create(NormalizationLinkMappingInterface::class, []),
38+
];
3339

3440
/** @var MockObject|NormalizationObjectMappingInterface $normalizationObjectMapping */
35-
$normalizationObjectMapping = $this->getMockByCalls(NormalizationObjectMappingInterface::class, [
36-
Call::create('getNormalizationType')->with()->willReturn('type'),
37-
Call::create('getNormalizationFieldMappings')
38-
->with('path')
39-
->willReturn($normalizationFieldMappings),
40-
Call::create('getNormalizationEmbeddedFieldMappings')
41-
->with('path')
42-
->willReturn($normalizationEmbeddedFieldMappings),
43-
Call::create('getNormalizationLinkMappings')
44-
->with('path')
45-
->willReturn($normalizationLinkMappings),
41+
$normalizationObjectMapping = $builder->create(NormalizationObjectMappingInterface::class, [
42+
new WithReturn('getNormalizationType', [], 'type'),
43+
new WithReturn('getNormalizationFieldMappings', ['path'], $normalizationFieldMappings),
44+
new WithReturn('getNormalizationEmbeddedFieldMappings', ['path'], $normalizationEmbeddedFieldMappings),
45+
new WithReturn('getNormalizationLinkMappings', ['path'], $normalizationLinkMappings),
4646
]);
4747

4848
/** @var ContainerInterface|MockObject $container */
49-
$container = $this->getMockByCalls(ContainerInterface::class, [
50-
Call::create('get')->with('service')->willReturn($normalizationObjectMapping),
51-
Call::create('get')->with('service')->willReturn($normalizationObjectMapping),
52-
Call::create('get')->with('service')->willReturn($normalizationObjectMapping),
53-
Call::create('get')->with('service')->willReturn($normalizationObjectMapping),
49+
$container = $builder->create(ContainerInterface::class, [
50+
new WithReturn('get', ['service'], $normalizationObjectMapping),
51+
new WithReturn('get', ['service'], $normalizationObjectMapping),
52+
new WithReturn('get', ['service'], $normalizationObjectMapping),
53+
new WithReturn('get', ['service'], $normalizationObjectMapping),
5454
]);
5555

5656
$objectMapping = new LazyNormalizationObjectMapping($container, 'service', \stdClass::class);

tests/Unit/Mapping/NormalizationFieldMappingBuilderTest.php

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
namespace Chubbyphp\Tests\Serialization\Unit\Mapping;
66

7-
use Chubbyphp\Mock\MockByCallsTrait;
7+
use Chubbyphp\Mock\MockObjectBuilder;
88
use Chubbyphp\Serialization\Mapping\NormalizationFieldMappingBuilder;
99
use Chubbyphp\Serialization\Normalizer\CallbackFieldNormalizer;
1010
use Chubbyphp\Serialization\Normalizer\DateTimeFieldNormalizer;
@@ -26,8 +26,6 @@
2626
*/
2727
final class NormalizationFieldMappingBuilderTest extends TestCase
2828
{
29-
use MockByCallsTrait;
30-
3129
public function testGetDefaultMapping(): void
3230
{
3331
$fieldMapping = NormalizationFieldMappingBuilder::create('name')->getMapping();
@@ -39,8 +37,10 @@ public function testGetDefaultMapping(): void
3937

4038
public function testGetMappingWithNormalizer(): void
4139
{
40+
$builder = new MockObjectBuilder();
41+
4242
/** @var FieldNormalizerInterface|MockObject $fieldNormalizer */
43-
$fieldNormalizer = $this->getMockByCalls(FieldNormalizerInterface::class);
43+
$fieldNormalizer = $builder->create(FieldNormalizerInterface::class, []);
4444

4545
$fieldMapping = NormalizationFieldMappingBuilder::create('name', $fieldNormalizer)->getMapping();
4646

@@ -122,11 +122,13 @@ public function testGetDefaultMappingForReferenceOne(): void
122122

123123
public function testGetMapping(): void
124124
{
125+
$builder = new MockObjectBuilder();
126+
125127
/** @var FieldNormalizerInterface|MockObject $fieldNormalizer */
126-
$fieldNormalizer = $this->getMockByCalls(FieldNormalizerInterface::class);
128+
$fieldNormalizer = $builder->create(FieldNormalizerInterface::class, []);
127129

128130
/** @var MockObject|PolicyInterface $policy */
129-
$policy = $this->getMockByCalls(PolicyInterface::class);
131+
$policy = $builder->create(PolicyInterface::class, []);
130132

131133
$fieldMapping = NormalizationFieldMappingBuilder::create('name', $fieldNormalizer)
132134
->setPolicy($policy)

tests/Unit/Mapping/NormalizationFieldMappingTest.php

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
namespace Chubbyphp\Tests\Serialization\Unit\Mapping;
66

7-
use Chubbyphp\Mock\MockByCallsTrait;
7+
use Chubbyphp\Mock\MockObjectBuilder;
88
use Chubbyphp\Serialization\Mapping\NormalizationFieldMapping;
99
use Chubbyphp\Serialization\Normalizer\FieldNormalizerInterface;
1010
use Chubbyphp\Serialization\Policy\PolicyInterface;
@@ -18,12 +18,12 @@
1818
*/
1919
final class NormalizationFieldMappingTest extends TestCase
2020
{
21-
use MockByCallsTrait;
22-
2321
public function testGetName(): void
2422
{
23+
$builder = new MockObjectBuilder();
24+
2525
/** @var FieldNormalizerInterface|MockObject $fieldNormalizer */
26-
$fieldNormalizer = $this->getMockByCalls(FieldNormalizerInterface::class);
26+
$fieldNormalizer = $builder->create(FieldNormalizerInterface::class, []);
2727

2828
$fieldMapping = new NormalizationFieldMapping('name', $fieldNormalizer);
2929

@@ -32,8 +32,10 @@ public function testGetName(): void
3232

3333
public function testGetFieldNormalizer(): void
3434
{
35+
$builder = new MockObjectBuilder();
36+
3537
/** @var FieldNormalizerInterface|MockObject $fieldNormalizer */
36-
$fieldNormalizer = $this->getMockByCalls(FieldNormalizerInterface::class);
38+
$fieldNormalizer = $builder->create(FieldNormalizerInterface::class, []);
3739

3840
$fieldMapping = new NormalizationFieldMapping('name', $fieldNormalizer);
3941

@@ -42,11 +44,13 @@ public function testGetFieldNormalizer(): void
4244

4345
public function testGetPolicy(): void
4446
{
47+
$builder = new MockObjectBuilder();
48+
4549
/** @var FieldNormalizerInterface|MockObject $fieldNormalizer */
46-
$fieldNormalizer = $this->getMockByCalls(FieldNormalizerInterface::class);
50+
$fieldNormalizer = $builder->create(FieldNormalizerInterface::class, []);
4751

4852
/** @var MockObject|PolicyInterface $policy */
49-
$policy = $this->getMockByCalls(PolicyInterface::class);
53+
$policy = $builder->create(PolicyInterface::class, []);
5054

5155
$fieldMapping = new NormalizationFieldMapping('name', $fieldNormalizer, $policy);
5256

tests/Unit/Mapping/NormalizationLinkMappingBuilderTest.php

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
namespace Chubbyphp\Tests\Serialization\Unit\Mapping;
66

7-
use Chubbyphp\Mock\MockByCallsTrait;
7+
use Chubbyphp\Mock\MockObjectBuilder;
88
use Chubbyphp\Serialization\Mapping\NormalizationLinkMappingBuilder;
99
use Chubbyphp\Serialization\Normalizer\CallbackLinkNormalizer;
1010
use Chubbyphp\Serialization\Normalizer\LinkNormalizer;
@@ -22,12 +22,12 @@
2222
*/
2323
final class NormalizationLinkMappingBuilderTest extends TestCase
2424
{
25-
use MockByCallsTrait;
26-
2725
public function testGetDefaultMapping(): void
2826
{
27+
$builder = new MockObjectBuilder();
28+
2929
/** @var LinkNormalizerInterface|MockObject $linkNormalizer */
30-
$linkNormalizer = $this->getMockByCalls(LinkNormalizerInterface::class);
30+
$linkNormalizer = $builder->create(LinkNormalizerInterface::class, []);
3131

3232
$linkMapping = NormalizationLinkMappingBuilder::create('name', $linkNormalizer)->getMapping();
3333

@@ -47,8 +47,10 @@ public function testGetDefaultMappingForCallback(): void
4747

4848
public function testGetDefaultMappingForLink(): void
4949
{
50+
$builder = new MockObjectBuilder();
51+
5052
/** @var LinkInterface|MockObject $link */
51-
$link = $this->getMockByCalls(LinkInterface::class);
53+
$link = $builder->create(LinkInterface::class, []);
5254

5355
$linkMapping = NormalizationLinkMappingBuilder::createLink('name', $link)->getMapping();
5456

@@ -59,11 +61,13 @@ public function testGetDefaultMappingForLink(): void
5961

6062
public function testGetMapping(): void
6163
{
64+
$builder = new MockObjectBuilder();
65+
6266
/** @var LinkNormalizerInterface|MockObject $linkNormalizer */
63-
$linkNormalizer = $this->getMockByCalls(LinkNormalizerInterface::class);
67+
$linkNormalizer = $builder->create(LinkNormalizerInterface::class, []);
6468

6569
/** @var MockObject|PolicyInterface $policy */
66-
$policy = $this->getMockByCalls(PolicyInterface::class);
70+
$policy = $builder->create(PolicyInterface::class, []);
6771

6872
$linkMapping = NormalizationLinkMappingBuilder::create('name', $linkNormalizer)
6973
->setPolicy($policy)

0 commit comments

Comments
 (0)