Skip to content

Commit 32479b7

Browse files
committed
Use TaggedValue for changes in recorded diff yml.
1 parent 33afe5a commit 32479b7

File tree

4 files changed

+22
-31
lines changed

4 files changed

+22
-31
lines changed

src/Diff/ExportedArrayDiffer.php

Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -138,7 +138,7 @@ protected function doCompareLists(array $before, array $after, int $i_before = 0
138138
if ($i_after >= count($after)) {
139139
// There are more items in "before" list.
140140
for (; $i_before < count($before); ++$i_before) {
141-
$diff[] = new TaggedValue('--', $before[$i_before]);
141+
$diff[] = new TaggedValue('rm', $before[$i_before]);
142142
}
143143
return $diff;
144144
}
@@ -165,7 +165,7 @@ protected function doCompareLists(array $before, array $after, int $i_before = 0
165165
if (count($diff_minus) <= count($diff_plus)) {
166166
return [
167167
...$diff,
168-
new TaggedValue('--', $before[$i_before]),
168+
new TaggedValue('rm', $before[$i_before]),
169169
...$diff_minus,
170170
];
171171
}
@@ -193,16 +193,15 @@ protected function compareAssoc(array $before, array $after): array|false {
193193
$diff = [];
194194
$similar = false;
195195
foreach (array_diff_key($before, $after) as $key => $item) {
196-
$diff['-- ' . $key] = $item;
196+
$diff[$key] = new TaggedValue('rm', $item);
197197
}
198198
foreach ($shared_keys as $key) {
199199
$item_diff = $this->compareValues($before[$key], $after[$key]);
200200
if ($item_diff === false) {
201-
$diff['~- ' . $key] = $before[$key];
202-
$diff['~+ ' . $key] = $after[$key];
201+
$diff[$key] = new TaggedValue('replace', $after[$key]);
203202
}
204203
elseif ($item_diff) {
205-
$diff['~~ ' . $key] = $item_diff;
204+
$diff[$key] = new TaggedValue('diff', $item_diff);
206205
$similar = true;
207206
}
208207
else {
@@ -213,7 +212,7 @@ protected function compareAssoc(array $before, array $after): array|false {
213212
return false;
214213
}
215214
foreach (array_diff_key($after, $before) as $key => $item) {
216-
$diff['++ ' . $key] = $item;
215+
$diff[$key] = new TaggedValue('add', $item);
217216
}
218217
return $diff;
219218
}
@@ -235,16 +234,15 @@ protected function compareExportedObjects(array $before, array $after, string $c
235234
);
236235
$diff = [];
237236
foreach (array_diff_key($before, $after) as $key => $item) {
238-
$diff['-- ' . $key] = $item;
237+
$diff[$key] = new TaggedValue('rm', $item);
239238
}
240239
foreach ($shared_keys as $key) {
241240
$item_diff = $this->compareExportedObjectProperty($class, $key, $before[$key], $after[$key]);
242241
if ($item_diff === false) {
243-
$diff['~- ' . $key] = $before[$key];
244-
$diff['~+ ' . $key] = $after[$key];
242+
$diff[$key] = new TaggedValue('replace', $after[$key]);
245243
}
246244
elseif ($item_diff) {
247-
$diff['~~ ' . $key] = $item_diff;
245+
$diff[$key] = new TaggedValue('diff', $item_diff);
248246
}
249247
}
250248
if (!$diff) {

tests/fixtures/ExportedArrayDifferTest/assoc.hello.yml

Lines changed: 10 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -29,22 +29,16 @@ after:
2929
'good day': bonjour
3030
internet: internet
3131
diff:
32-
'-- assoc_drop':
32+
assoc_drop: !rm
3333
x: X
34-
'-- remove': remove
35-
'~~ assoc_diff':
36-
'~- b': B
37-
'~+ b': BB
38-
'~- assoc_replace':
39-
r: R
40-
'~+ assoc_replace':
34+
remove: !rm remove
35+
assoc_diff: !diff
36+
b: !replace BB
37+
assoc_replace: !replace
4138
rr: RR
42-
'~- good day': 'good day'
43-
'~+ good day': bonjour
44-
'~- goodbye': goodbye
45-
'~+ goodbye': 'a bientot'
46-
'~- hello': hello
47-
'~+ hello': salut
48-
'++ ajouter': ajouter
49-
'++ assoc_new':
39+
'good day': !replace bonjour
40+
goodbye: !replace 'a bientot'
41+
hello: !replace salut
42+
ajouter: !add ajouter
43+
assoc_new: !add
5044
new: New

tests/fixtures/ExportedArrayDifferTest/list.change-assoc-value.yml

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,12 +17,11 @@ after:
1717
b: 'B orig'
1818
- after
1919
diff:
20-
- !--
20+
- !rm
2121
a: 'A orig'
2222
b: 'B orig'
2323
- !add
2424
a: 'A changed'
2525
b: 'B changed'
2626
- !diff
27-
'~- a': 'A orig'
28-
'~+ a': 'A changed'
27+
a: !replace 'A changed'

tests/fixtures/ExportedArrayDifferTest/list.hello.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,5 +5,5 @@ after:
55
- goodbye
66
- world
77
diff:
8-
- !-- hello
8+
- !rm hello
99
- !add goodbye

0 commit comments

Comments
 (0)