Skip to content

Commit 1f00459

Browse files
committed
Improve FixturesTest error message
1 parent f18dca9 commit 1f00459

File tree

2 files changed

+14
-3
lines changed

2 files changed

+14
-3
lines changed

tests/cases/FixturesTest.php

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -144,17 +144,23 @@ private function validateTotals(
144144

145145
$expectedTotal = $expected->total();
146146
$actualTotal = $actual->total();
147+
$unexpected = array_diff($actual->messageLines(), $expected->messageLines());
148+
$notRaised = array_diff($expected->messageLines(), $actual->messageLines());
149+
$mismatch = array_unique(array_merge($unexpected, $notRaised));
147150

148151
self::assertSame(
149152
$expectedTotal,
150153
$actualTotal,
151154
sprintf(
152155
'Fixture \'%s\', for sniff \'%s\', expected a total of %d messages, '
153-
. 'but actually a total of %d messages found.',
156+
. 'but actually a total of %d messages found.'
157+
. ' (mismatch found at %s %s)',
154158
$fixtureFile,
155159
$sniffClass,
156160
$expectedTotal,
157-
$actualTotal
161+
$actualTotal,
162+
count($mismatch) === 1 ? 'line' : 'lines:',
163+
implode(', ', $mismatch)
158164
)
159165
);
160166
}

tests/src/SniffMessages.php

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,12 @@ public function messageIn(int $line)
7474
*/
7575
public function messageLines(): array
7676
{
77-
return array_keys($this->messages);
77+
$messageLines = array_keys($this->messages);
78+
if ($this->messagesContainTotal) {
79+
return $messageLines;
80+
}
81+
82+
return array_unique(array_merge($this->errorLines(), $this->warningLines(), $messageLines));
7883
}
7984

8085
/**

0 commit comments

Comments
 (0)