Skip to content

Commit 7022349

Browse files
committed
Fix closure test to allow 100% code coverage
1 parent d6faca7 commit 7022349

9 files changed

+98
-152
lines changed

tests/Transformers/AbstractTransformerTestCase.php

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
use Wrkflow\GetValue\Actions\GetValidatedValueAction;
99
use Wrkflow\GetValue\Actions\ValidateAction;
1010
use Wrkflow\GetValue\Builders\ExceptionBuilder;
11+
use Wrkflow\GetValue\Contracts\TransformerContract;
1112
use Wrkflow\GetValue\DataHolders\ArrayData;
1213
use Wrkflow\GetValue\GetValue;
1314

@@ -54,16 +55,16 @@ public function data(): array
5455
*/
5556
public function testTransform(TransformerExpectationEntity $entity): void
5657
{
57-
$this->assertValue($entity);
58+
$this->assertValue($this->getTransformer(), $entity);
5859
}
5960

60-
public function assertValue(TransformerExpectationEntity $entity): void
61+
public function assertValue(TransformerContract $transformer, TransformerExpectationEntity $entity): void
6162
{
6263
$data = new GetValue(new ArrayData([
6364
'test' => $entity->value,
6465
]));
6566

66-
$transforms = [$entity->transformer];
67+
$transforms = [$transformer];
6768

6869
if ($entity->expectException !== null) {
6970
$this->expectException($entity->expectException);
@@ -96,4 +97,6 @@ public function assertValue(TransformerExpectationEntity $entity): void
9697
);
9798
}
9899
}
100+
101+
abstract protected function getTransformer(): TransformerContract;
99102
}

tests/Transformers/ArrayItemGetterTransformerTest.php

Lines changed: 12 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -16,39 +16,33 @@ class ArrayItemGetterTransformerTest extends AbstractTransformerTestCase
1616

1717
public function dataToTest(): array
1818
{
19-
$transformer = $this->getDefaultTransformer();
20-
21-
return $this->dataAfterValidationForTransformer($transformer);
19+
return $this->dataAfterValidationForTransformer();
2220
}
2321

2422
public function dataToTestBeforeValidation(): array
2523
{
26-
$transformer = $this->getBeforeValidationTransformer();
27-
28-
return $this->createData($transformer, false);
24+
return $this->createData(false);
2925
}
3026

3127
/**
3228
* @dataProvider dataToTestBeforeValidation
3329
*/
3430
public function testBeforeValidation(TransformerExpectationEntity $entity): void
3531
{
36-
$this->assertValue($entity);
32+
$this->assertValue($this->getBeforeValidationTransformer(), $entity);
3733
}
3834

3935
public function dataToAfterValidationForce(): array
4036
{
41-
$transformer = $this->getForceAfterValidation();
42-
43-
return $this->dataAfterValidationForTransformer($transformer);
37+
return $this->dataAfterValidationForTransformer();
4438
}
4539

4640
/**
4741
* @dataProvider dataToAfterValidationForce
4842
*/
4943
public function testAfterValidationForce(TransformerExpectationEntity $entity): void
5044
{
51-
$this->assertValue($entity);
45+
$this->assertValue($this->getForceAfterValidation(), $entity);
5246
}
5347

5448
public function testSupportsEmptyArray(): void
@@ -65,9 +59,8 @@ public function testSupportsEmptyArray(): void
6559
'test' => 'value',
6660
];
6761
$value = [[], $testValue];
68-
$this->assertValue(new TransformerExpectationEntity(
62+
$this->assertValue($transformer, new TransformerExpectationEntity(
6963
value: $value,
70-
transformer: $transformer,
7164
expectedValue: [[
7265
'original' => [],
7366
], [
@@ -77,9 +70,9 @@ public function testSupportsEmptyArray(): void
7770
));
7871
}
7972

80-
protected function dataAfterValidationForTransformer(TransformerArrayContract $transformer): array
73+
protected function dataAfterValidationForTransformer(): array
8174
{
82-
return $this->createData($transformer, true);
75+
return $this->createData(true);
8376
}
8477

8578
protected function getClosure(): Closure
@@ -94,7 +87,7 @@ protected function getClosure(): Closure
9487
};
9588
}
9689

97-
protected function getDefaultTransformer(): TransformerArrayContract
90+
protected function getTransformer(): TransformerArrayContract
9891
{
9992
return new ArrayItemGetterTransformer(onItem: $this->getClosure());
10093
}
@@ -109,15 +102,14 @@ protected function getForceAfterValidation(): TransformerArrayContract
109102
return new ArrayItemGetterTransformer(onItem: $this->getClosure(), beforeValidation: false);
110103
}
111104

112-
protected function createData(TransformerArrayContract $transformer, bool $beforeValueIsSameAsValue): array
105+
protected function createData(bool $beforeValueIsSameAsValue): array
113106
{
114107
return [
115108
[
116109
new TransformerExpectationEntity(
117110
value: [[
118111
self::KeyValue => '',
119112
]],
120-
transformer: $transformer,
121113
expectedValue: [[
122114
self::KeyValue => 'd41d8cd98f00b204e9800998ecf8427e',
123115
]],
@@ -131,7 +123,6 @@ protected function createData(TransformerArrayContract $transformer, bool $befor
131123
value: [[
132124
self::KeyValue => ' ',
133125
]],
134-
transformer: $transformer,
135126
expectedValue: [[
136127
self::KeyValue => '7215ee9c7d9dc229d2921a40e899ec5f',
137128
]],
@@ -145,7 +136,6 @@ protected function createData(TransformerArrayContract $transformer, bool $befor
145136
value: [[
146137
self::KeyValue => ' asd ',
147138
]],
148-
transformer: $transformer,
149139
expectedValue: [[
150140
self::KeyValue => '81c24eeebdef51c832407fa3e4509ab8',
151141
]],
@@ -159,7 +149,6 @@ protected function createData(TransformerArrayContract $transformer, bool $befor
159149
value: [[
160150
self::KeyValue => 'asd ',
161151
]],
162-
transformer: $transformer,
163152
expectedValue: [[
164153
self::KeyValue => '4fe2077508f28d88bfa1473149415224',
165154
]],
@@ -173,7 +162,6 @@ protected function createData(TransformerArrayContract $transformer, bool $befor
173162
value: [[
174163
self::KeyValue => 'asd mix',
175164
]],
176-
transformer: $transformer,
177165
expectedValue: [[
178166
self::KeyValue => 'bf40744fb5eeca1029aed8d8c5d30f82',
179167
]],
@@ -182,11 +170,11 @@ protected function createData(TransformerArrayContract $transformer, bool $befor
182170
]] : null
183171
),
184172
],
185-
[new TransformerExpectationEntity(value: null, transformer: $transformer, expectedValue: null)],
173+
[new TransformerExpectationEntity(value: null, expectedValue: null)],
186174
[
187175
new TransformerExpectationEntity(value: [
188176
'test',
189-
], transformer: $transformer, expectedValue: null, expectException: NotAnArrayException::class),
177+
], expectedValue: null, expectException: NotAnArrayException::class),
190178
],
191179
];
192180
}

tests/Transformers/ArrayItemTransformerTest.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ protected function getClosure(): Closure
2424
};
2525
}
2626

27-
protected function getDefaultTransformer(): TransformerArrayContract
27+
protected function getTransformer(): TransformerArrayContract
2828
{
2929
return new ArrayItemTransformer(onItem: $this->getClosure());
3030
}

tests/Transformers/ArrayTransformerTest.php

Lines changed: 10 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -12,52 +12,33 @@ class ArrayTransformerTest extends AbstractTransformerTestCase
1212
{
1313
public function dataToTest(): array
1414
{
15-
$transformer = $this->getDefaultTransformer();
16-
17-
return $this->dataAfterValidationForTransformer($transformer);
15+
return $this->dataAfterValidationForTransformer();
1816
}
1917

2018
public function dataToTestBeforeValidation(): array
2119
{
22-
$transformer = $this->getBeforeValidationTransformer();
23-
2420
return [
25-
[
26-
new TransformerExpectationEntity(
27-
value: [''],
28-
transformer: $transformer,
29-
expectedValue: ['d41d8cd98f00b204e9800998ecf8427e']
30-
),
31-
],
32-
[
33-
new TransformerExpectationEntity(
34-
value: [' '],
35-
transformer: $transformer,
36-
expectedValue: ['7215ee9c7d9dc229d2921a40e899ec5f']
37-
),
38-
],
21+
[new TransformerExpectationEntity(value: [''], expectedValue: ['d41d8cd98f00b204e9800998ecf8427e'])],
22+
[new TransformerExpectationEntity(value: [' '], expectedValue: ['7215ee9c7d9dc229d2921a40e899ec5f'])],
3923
[
4024
new TransformerExpectationEntity(
4125
value: [' asd '],
42-
transformer: $transformer,
4326
expectedValue: ['81c24eeebdef51c832407fa3e4509ab8']
4427
),
4528
],
4629
[
4730
new TransformerExpectationEntity(
4831
value: ['asd '],
49-
transformer: $transformer,
5032
expectedValue: ['4fe2077508f28d88bfa1473149415224']
5133
),
5234
],
5335
[
5436
new TransformerExpectationEntity(
5537
value: ['asd mix'],
56-
transformer: $transformer,
5738
expectedValue: ['bf40744fb5eeca1029aed8d8c5d30f82']
5839
),
5940
],
60-
[new TransformerExpectationEntity(value: null, transformer: $transformer, expectedValue: null)],
41+
[new TransformerExpectationEntity(value: null, expectedValue: null)],
6142
];
6243
}
6344

@@ -66,69 +47,62 @@ public function dataToTestBeforeValidation(): array
6647
*/
6748
public function testBeforeValidation(TransformerExpectationEntity $entity): void
6849
{
69-
$this->assertValue($entity);
50+
$this->assertValue($this->getBeforeValidationTransformer(), $entity);
7051
}
7152

7253
public function dataToAfterValidationForce(): array
7354
{
74-
$transformer = $this->getForceAfterValidation();
75-
76-
return $this->dataAfterValidationForTransformer($transformer);
55+
return $this->dataAfterValidationForTransformer();
7756
}
7857

7958
/**
8059
* @dataProvider dataToAfterValidationForce
8160
*/
8261
public function testAfterValidationForce(TransformerExpectationEntity $entity): void
8362
{
84-
$this->assertValue($entity);
63+
$this->assertValue($this->getForceAfterValidation(), $entity);
8564
}
8665

87-
protected function dataAfterValidationForTransformer(TransformerArrayContract $transformer): array
66+
protected function dataAfterValidationForTransformer(): array
8867
{
8968
return [
9069
[
9170
new TransformerExpectationEntity(
9271
value: [''],
93-
transformer: $transformer,
9472
expectedValue: ['d41d8cd98f00b204e9800998ecf8427e'],
9573
expectedValueBeforeValidation: ['']
9674
),
9775
],
9876
[
9977
new TransformerExpectationEntity(
10078
value: [' '],
101-
transformer: $transformer,
10279
expectedValue: ['7215ee9c7d9dc229d2921a40e899ec5f'],
10380
expectedValueBeforeValidation: [' ']
10481
),
10582
],
10683
[
10784
new TransformerExpectationEntity(
10885
value: [' asd '],
109-
transformer: $transformer,
11086
expectedValue: ['81c24eeebdef51c832407fa3e4509ab8'],
11187
expectedValueBeforeValidation: [' asd ']
11288
),
11389
],
11490
[
11591
new TransformerExpectationEntity(
11692
value: ['asd '],
117-
transformer: $transformer,
11893
expectedValue: ['4fe2077508f28d88bfa1473149415224'],
11994
expectedValueBeforeValidation: ['asd ']
12095
),
12196
],
12297
[
12398
new TransformerExpectationEntity(
12499
value: ['asd mix'],
125-
transformer: $transformer,
126100
expectedValue: ['bf40744fb5eeca1029aed8d8c5d30f82'],
127101
expectedValueBeforeValidation: ['asd mix']
128102
),
129103
],
130104
// Closure not called
131-
[new TransformerExpectationEntity(value: null, transformer: $transformer, expectedValue: null)],
105+
[new TransformerExpectationEntity(value: null, expectedValue: null)],
132106
];
133107
}
134108

@@ -141,7 +115,7 @@ protected function getClosure(): Closure
141115
};
142116
}
143117

144-
protected function getDefaultTransformer(): TransformerArrayContract
118+
protected function getTransformer(): TransformerArrayContract
145119
{
146120
return new ArrayTransformer($this->getClosure());
147121
}

0 commit comments

Comments
 (0)