Skip to content
This repository has been archived by the owner on Jul 8, 2023. It is now read-only.

Commit

Permalink
Improve numbering in assertion argument rendering
Browse files Browse the repository at this point in the history
  • Loading branch information
ezzatron committed Apr 10, 2023
1 parent 7f6d497 commit d1877ae
Show file tree
Hide file tree
Showing 14 changed files with 27 additions and 21 deletions.
18 changes: 12 additions & 6 deletions src/Assertion/AssertionRenderer.php
Original file line number Diff line number Diff line change
Expand Up @@ -195,7 +195,7 @@ public function renderCalled($subject, Cardinality $cardinality): string
$arguments = $normalizedArguments[$callIndex];
$renderedArguments = [];

foreach ($arguments as $positionOrName => $argument) {
foreach ($arguments as $positionOrName => &$argument) {
$paddedName = str_pad(
(string) $positionOrName,
$namePadLength,
Expand Down Expand Up @@ -482,10 +482,10 @@ public function renderCalledWith(

if (array_key_exists($position, $arguments)) {
$hasArgument = true;
$argument = $arguments[$position];
$argument = &$arguments[$position];
} elseif (array_key_exists($key, $arguments)) {
$hasArgument = true;
$argument = $arguments[$key];
$argument = &$arguments[$key];
} else {
$hasArgument = false;
$argument = null;
Expand All @@ -506,7 +506,13 @@ public function renderCalledWith(
$key = (string) ($argumentKey ?? $matcherKey);
$isMatch = $isSingularMatch || $isWildMatch;
$hasArgument = null !== $argumentKey;
$argument = $hasArgument ? $arguments[$argumentKey] : null;

if ($hasArgument) {
$argument = &$arguments[$argumentKey];
} else {
$argument = null;
}

$matcher = null === $matcherKey
? null
: $matcherSet->variadicMatchers[$matcherKey];
Expand All @@ -516,8 +522,8 @@ public function renderCalledWith(
}

foreach ($argumentRows as $argumentRow) {
list($key, $isMatch, $hasArgument, $argument, $matcher) =
$argumentRow;
list($key, $isMatch, $hasArgument, , $matcher) = $argumentRow;
$argument = &$argumentRow[3];

$paddedKey =
str_pad($key, $maxKeyLength + 4, ' ', STR_PAD_LEFT);
Expand Down
2 changes: 1 addition & 1 deletion test/fixture/verification/called-with/always/expected
Original file line number Diff line number Diff line change
Expand Up @@ -7,4 +7,4 @@ Matched 0 of 2:
animals: %RED%✗%RESET% #%CYAN%%FAINT%[-%RESET%%CYAN%%UNDERLINE%1%RESET%%CYAN%%FAINT%-]%RESET%%YELLOW%%FAINT%{+%RESET%%YELLOW%%UNDERLINE%2%RESET%%YELLOW%%FAINT%+}%RESET%["bonobo", "%CYAN%%FAINT%[-%RESET%%CYAN%%UNDERLINE%chameleon%RESET%%CYAN%%FAINT%-]%RESET%%YELLOW%%FAINT%{+%RESET%%YELLOW%%UNDERLINE%capybara%RESET%%YELLOW%%FAINT%+}%RESET%", "%CYAN%%FAINT%[-%RESET%%CYAN%%UNDERLINE%dormouse%RESET%%CYAN%%FAINT%-]%RESET%%YELLOW%%FAINT%{+%RESET%%YELLOW%%UNDERLINE%dugong%RESET%%YELLOW%%FAINT%+}%RESET%"]
%RED%✗%RESET% Call #1:
animal: %RED%✗%RESET% "%CYAN%%FAINT%[-%RESET%%CYAN%%UNDERLINE%aardvark%RESET%%CYAN%%FAINT%-]%RESET%%YELLOW%%FAINT%{+%RESET%%YELLOW%%UNDERLINE%armadillo%RESET%%YELLOW%%FAINT%+}%RESET%"
animals: %GREEN%✓%RESET% #2["bonobo", "chameleon", "dormouse"]
animals: %GREEN%✓%RESET% #3["bonobo", "chameleon", "dormouse"]
Original file line number Diff line number Diff line change
Expand Up @@ -5,4 +5,4 @@
animals: %RED%✗%RESET% #1["bonobo", "capybara", "dugong"]
%RED%✗%RESET% Call #1:
animal: %RED%✗%RESET% "armadillo"
animals: %RED%✗%RESET% #1["bonobo", "chameleon", "dormouse"]
animals: %RED%✗%RESET% #2["bonobo", "chameleon", "dormouse"]
Original file line number Diff line number Diff line change
Expand Up @@ -7,4 +7,4 @@ Matched 0 of 2:
array: %RED%✗%RESET% #%CYAN%%FAINT%[-%RESET%%CYAN%%UNDERLINE%0%RESET%%CYAN%%FAINT%-]%RESET%%YELLOW%%FAINT%{+%RESET%%YELLOW%%UNDERLINE%1%RESET%%YELLOW%%FAINT%+}%RESET%["bonobo", "%CYAN%%FAINT%[-%RESET%%CYAN%%UNDERLINE%chameleon%RESET%%CYAN%%FAINT%-]%RESET%%YELLOW%%FAINT%{+%RESET%%YELLOW%%UNDERLINE%capybara%RESET%%YELLOW%%FAINT%+}%RESET%", "dugong"]
%RED%✗%RESET% Call #1:
separator: %RED%✗%RESET% "%CYAN%%FAINT%[-%RESET%%CYAN%%UNDERLINE%aardvark%RESET%%CYAN%%FAINT%-]%RESET%%YELLOW%%FAINT%{+%RESET%%YELLOW%%UNDERLINE%armadillo%RESET%%YELLOW%%FAINT%+}%RESET%"
array: %RED%✗%RESET% #%CYAN%%FAINT%[-%RESET%%CYAN%%UNDERLINE%0%RESET%%CYAN%%FAINT%-]%RESET%%YELLOW%%FAINT%{+%RESET%%YELLOW%%UNDERLINE%1%RESET%%YELLOW%%FAINT%+}%RESET%["bonobo", "chameleon", "%CYAN%%FAINT%[-%RESET%%CYAN%%UNDERLINE%dugong%RESET%%CYAN%%FAINT%-]%RESET%%YELLOW%%FAINT%{+%RESET%%YELLOW%%UNDERLINE%dormouse%RESET%%YELLOW%%FAINT%+}%RESET%"]
array: %RED%✗%RESET% #%CYAN%%FAINT%[-%RESET%%CYAN%%UNDERLINE%0%RESET%%CYAN%%FAINT%-]%RESET%%YELLOW%%FAINT%{+%RESET%%YELLOW%%UNDERLINE%2%RESET%%YELLOW%%FAINT%+}%RESET%["bonobo", "chameleon", "%CYAN%%FAINT%[-%RESET%%CYAN%%UNDERLINE%dugong%RESET%%CYAN%%FAINT%-]%RESET%%YELLOW%%FAINT%{+%RESET%%YELLOW%%UNDERLINE%dormouse%RESET%%YELLOW%%FAINT%+}%RESET%"]
Original file line number Diff line number Diff line change
Expand Up @@ -7,4 +7,4 @@ Matched 0 of 2:
animals: %RED%✗%RESET% #%CYAN%%FAINT%[-%RESET%%CYAN%%UNDERLINE%1%RESET%%CYAN%%FAINT%-]%RESET%%YELLOW%%FAINT%{+%RESET%%YELLOW%%UNDERLINE%2%RESET%%YELLOW%%FAINT%+}%RESET%["bonobo", "%CYAN%%FAINT%[-%RESET%%CYAN%%UNDERLINE%chameleon%RESET%%CYAN%%FAINT%-]%RESET%%YELLOW%%FAINT%{+%RESET%%YELLOW%%UNDERLINE%capybara%RESET%%YELLOW%%FAINT%+}%RESET%", "dugong"]
%RED%✗%RESET% Call #1:
animal: %RED%✗%RESET% "%CYAN%%FAINT%[-%RESET%%CYAN%%UNDERLINE%aardvark%RESET%%CYAN%%FAINT%-]%RESET%%YELLOW%%FAINT%{+%RESET%%YELLOW%%UNDERLINE%armadillo%RESET%%YELLOW%%FAINT%+}%RESET%"
animals: %RED%✗%RESET% #%CYAN%%FAINT%[-%RESET%%CYAN%%UNDERLINE%1%RESET%%CYAN%%FAINT%-]%RESET%%YELLOW%%FAINT%{+%RESET%%YELLOW%%UNDERLINE%2%RESET%%YELLOW%%FAINT%+}%RESET%["bonobo", "chameleon", "%CYAN%%FAINT%[-%RESET%%CYAN%%UNDERLINE%dugong%RESET%%CYAN%%FAINT%-]%RESET%%YELLOW%%FAINT%{+%RESET%%YELLOW%%UNDERLINE%dormouse%RESET%%YELLOW%%FAINT%+}%RESET%"]
animals: %RED%✗%RESET% #%CYAN%%FAINT%[-%RESET%%CYAN%%UNDERLINE%1%RESET%%CYAN%%FAINT%-]%RESET%%YELLOW%%FAINT%{+%RESET%%YELLOW%%UNDERLINE%3%RESET%%YELLOW%%FAINT%+}%RESET%["bonobo", "chameleon", "%CYAN%%FAINT%[-%RESET%%CYAN%%UNDERLINE%dugong%RESET%%CYAN%%FAINT%-]%RESET%%YELLOW%%FAINT%{+%RESET%%YELLOW%%UNDERLINE%dormouse%RESET%%YELLOW%%FAINT%+}%RESET%"]
4 changes: 2 additions & 2 deletions test/fixture/verification/called-with/between/expected
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
animals: %GREEN%✓%RESET% #2["bonobo", "capybara", "dugong"]
%RED%✗%RESET% Call #1:
animal: %RED%✗%RESET% "%CYAN%%FAINT%[-%RESET%%CYAN%%UNDERLINE%aardvark%RESET%%CYAN%%FAINT%-]%RESET%%YELLOW%%FAINT%{+%RESET%%YELLOW%%UNDERLINE%armadillo%RESET%%YELLOW%%FAINT%+}%RESET%"
animals: %RED%✗%RESET% #%CYAN%%FAINT%[-%RESET%%CYAN%%UNDERLINE%1%RESET%%CYAN%%FAINT%-]%RESET%%YELLOW%%FAINT%{+%RESET%%YELLOW%%UNDERLINE%2%RESET%%YELLOW%%FAINT%+}%RESET%["bonobo", "%CYAN%%FAINT%[-%RESET%%CYAN%%UNDERLINE%capybara%RESET%%CYAN%%FAINT%-]%RESET%%YELLOW%%FAINT%{+%RESET%%YELLOW%%UNDERLINE%chameleon%RESET%%YELLOW%%FAINT%+}%RESET%", "%CYAN%%FAINT%[-%RESET%%CYAN%%UNDERLINE%dugong%RESET%%CYAN%%FAINT%-]%RESET%%YELLOW%%FAINT%{+%RESET%%YELLOW%%UNDERLINE%dormouse%RESET%%YELLOW%%FAINT%+}%RESET%"]
animals: %RED%✗%RESET% #%CYAN%%FAINT%[-%RESET%%CYAN%%UNDERLINE%1%RESET%%CYAN%%FAINT%-]%RESET%%YELLOW%%FAINT%{+%RESET%%YELLOW%%UNDERLINE%3%RESET%%YELLOW%%FAINT%+}%RESET%["bonobo", "%CYAN%%FAINT%[-%RESET%%CYAN%%UNDERLINE%capybara%RESET%%CYAN%%FAINT%-]%RESET%%YELLOW%%FAINT%{+%RESET%%YELLOW%%UNDERLINE%chameleon%RESET%%YELLOW%%FAINT%+}%RESET%", "%CYAN%%FAINT%[-%RESET%%CYAN%%UNDERLINE%dugong%RESET%%CYAN%%FAINT%-]%RESET%%YELLOW%%FAINT%{+%RESET%%YELLOW%%UNDERLINE%dormouse%RESET%%YELLOW%%FAINT%+}%RESET%"]
%GREEN%✓%RESET% Call #2:
animal: %GREEN%✓%RESET% "aardvark"
animals: %GREEN%✓%RESET% #2["bonobo", "capybara", "dugong"]
animals: %GREEN%✓%RESET% #4["bonobo", "capybara", "dugong"]
Original file line number Diff line number Diff line change
Expand Up @@ -5,4 +5,4 @@ Matched 0 of 2:
animals: %RED%✗%RESET% #1["bonobo", "capybara", "dugong"]
%RED%✗%RESET% Call #1:
animal: %RED%✗%RESET% "armadillo"
animals: %RED%✗%RESET% #1["bonobo", "chameleon", "dormouse"]
animals: %RED%✗%RESET% #2["bonobo", "chameleon", "dormouse"]
2 changes: 1 addition & 1 deletion test/fixture/verification/called-with/never/expected
Original file line number Diff line number Diff line change
Expand Up @@ -7,4 +7,4 @@ Matched 1 of 2:
animals: %GREEN%✓%RESET% #%CYAN%%FAINT%[-%RESET%%CYAN%%UNDERLINE%1%RESET%%CYAN%%FAINT%-]%RESET%%YELLOW%%FAINT%{+%RESET%%YELLOW%%UNDERLINE%2%RESET%%YELLOW%%FAINT%+}%RESET%["bonobo", "%CYAN%%FAINT%[-%RESET%%CYAN%%UNDERLINE%chameleon%RESET%%CYAN%%FAINT%-]%RESET%%YELLOW%%FAINT%{+%RESET%%YELLOW%%UNDERLINE%capybara%RESET%%YELLOW%%FAINT%+}%RESET%", "dugong"]
%RED%✗%RESET% Call #1:
animal: %RED%✗%RESET% "aardvark"
animals: %RED%✗%RESET% #2["bonobo", "chameleon", "dugong"]
animals: %RED%✗%RESET% #3["bonobo", "chameleon", "dugong"]
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ Matched 0 of 5:
animals: %RED%✗%RESET% <omitted>
%RED%✗%RESET% Call #3:
animal: %RED%✗%RESET% "%CYAN%%FAINT%[-%RESET%%CYAN%%UNDERLINE%aardvark%RESET%%CYAN%%FAINT%-]%RESET%%YELLOW%%FAINT%{+%RESET%%YELLOW%%UNDERLINE%armadillo%RESET%%YELLOW%%FAINT%+}%RESET%"
animals: %RED%✗%RESET% #%CYAN%%FAINT%[-%RESET%%CYAN%%UNDERLINE%1%RESET%%CYAN%%FAINT%-]%RESET%%YELLOW%%FAINT%{+%RESET%%YELLOW%%UNDERLINE%2%RESET%%YELLOW%%FAINT%+}%RESET%["bonobo", "chameleon", "%CYAN%%FAINT%[-%RESET%%CYAN%%UNDERLINE%dugong%RESET%%CYAN%%FAINT%-]%RESET%%YELLOW%%FAINT%{+%RESET%%YELLOW%%UNDERLINE%dormouse%RESET%%YELLOW%%FAINT%+}%RESET%"]
animals: %RED%✗%RESET% #%CYAN%%FAINT%[-%RESET%%CYAN%%UNDERLINE%1%RESET%%CYAN%%FAINT%-]%RESET%%YELLOW%%FAINT%{+%RESET%%YELLOW%%UNDERLINE%3%RESET%%YELLOW%%FAINT%+}%RESET%["bonobo", "chameleon", "%CYAN%%FAINT%[-%RESET%%CYAN%%UNDERLINE%dugong%RESET%%CYAN%%FAINT%-]%RESET%%YELLOW%%FAINT%{+%RESET%%YELLOW%%UNDERLINE%dormouse%RESET%%YELLOW%%FAINT%+}%RESET%"]
%RED%✗%RESET% Call #4:
animal: %RED%✗%RESET% <omitted>
animals: %RED%✗%RESET% <omitted>
4 changes: 2 additions & 2 deletions test/fixture/verification/called-with/times/expected
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
animals: %GREEN%✓%RESET% #2["bonobo", "capybara", "dugong"]
%RED%✗%RESET% Call #1:
animal: %RED%✗%RESET% "%CYAN%%FAINT%[-%RESET%%CYAN%%UNDERLINE%aardvark%RESET%%CYAN%%FAINT%-]%RESET%%YELLOW%%FAINT%{+%RESET%%YELLOW%%UNDERLINE%armadillo%RESET%%YELLOW%%FAINT%+}%RESET%"
animals: %RED%✗%RESET% #%CYAN%%FAINT%[-%RESET%%CYAN%%UNDERLINE%1%RESET%%CYAN%%FAINT%-]%RESET%%YELLOW%%FAINT%{+%RESET%%YELLOW%%UNDERLINE%2%RESET%%YELLOW%%FAINT%+}%RESET%["bonobo", "%CYAN%%FAINT%[-%RESET%%CYAN%%UNDERLINE%capybara%RESET%%CYAN%%FAINT%-]%RESET%%YELLOW%%FAINT%{+%RESET%%YELLOW%%UNDERLINE%chameleon%RESET%%YELLOW%%FAINT%+}%RESET%", "%CYAN%%FAINT%[-%RESET%%CYAN%%UNDERLINE%dugong%RESET%%CYAN%%FAINT%-]%RESET%%YELLOW%%FAINT%{+%RESET%%YELLOW%%UNDERLINE%dormouse%RESET%%YELLOW%%FAINT%+}%RESET%"]
animals: %RED%✗%RESET% #%CYAN%%FAINT%[-%RESET%%CYAN%%UNDERLINE%1%RESET%%CYAN%%FAINT%-]%RESET%%YELLOW%%FAINT%{+%RESET%%YELLOW%%UNDERLINE%3%RESET%%YELLOW%%FAINT%+}%RESET%["bonobo", "%CYAN%%FAINT%[-%RESET%%CYAN%%UNDERLINE%capybara%RESET%%CYAN%%FAINT%-]%RESET%%YELLOW%%FAINT%{+%RESET%%YELLOW%%UNDERLINE%chameleon%RESET%%YELLOW%%FAINT%+}%RESET%", "%CYAN%%FAINT%[-%RESET%%CYAN%%UNDERLINE%dugong%RESET%%CYAN%%FAINT%-]%RESET%%YELLOW%%FAINT%{+%RESET%%YELLOW%%UNDERLINE%dormouse%RESET%%YELLOW%%FAINT%+}%RESET%"]
%GREEN%✓%RESET% Call #2:
animal: %GREEN%✓%RESET% "aardvark"
animals: %GREEN%✓%RESET% #2["bonobo", "capybara", "dugong"]
animals: %GREEN%✓%RESET% #4["bonobo", "capybara", "dugong"]
2 changes: 1 addition & 1 deletion test/fixture/verification/called/between/expected
Original file line number Diff line number Diff line change
Expand Up @@ -5,4 +5,4 @@
animals: %GREEN%✓%RESET% #1["bonobo", "capybara", "dugong"]
%GREEN%✓%RESET% Call #1:
animal: %GREEN%✓%RESET% "armadillo"
animals: %GREEN%✓%RESET% #1["bonobo", "chameleon", "dormouse"]
animals: %GREEN%✓%RESET% #2["bonobo", "chameleon", "dormouse"]
2 changes: 1 addition & 1 deletion test/fixture/verification/called/never/expected
Original file line number Diff line number Diff line change
Expand Up @@ -5,4 +5,4 @@
animals: %RED%✗%RESET% #1["bonobo", "capybara", "dugong"]
%RED%✗%RESET% Call #1:
animal: %RED%✗%RESET% "armadillo"
animals: %RED%✗%RESET% #1["bonobo", "chameleon", "dormouse"]
animals: %RED%✗%RESET% #2["bonobo", "chameleon", "dormouse"]
2 changes: 1 addition & 1 deletion test/fixture/verification/called/no-arguments/expected
Original file line number Diff line number Diff line change
Expand Up @@ -7,5 +7,5 @@
%RED%✗%RESET% Call #2 (no arguments)
%RED%✗%RESET% Call #3:
animal: %RED%✗%RESET% "armadillo"
animals: %RED%✗%RESET% #1["bonobo", "chameleon", "dormouse"]
animals: %RED%✗%RESET% #2["bonobo", "chameleon", "dormouse"]
%RED%✗%RESET% Call #4 (no arguments)
2 changes: 1 addition & 1 deletion test/fixture/verification/called/times/expected
Original file line number Diff line number Diff line change
Expand Up @@ -5,4 +5,4 @@
animals: %GREEN%✓%RESET% #1["bonobo", "capybara", "dugong"]
%GREEN%✓%RESET% Call #1:
animal: %GREEN%✓%RESET% "armadillo"
animals: %GREEN%✓%RESET% #1["bonobo", "chameleon", "dormouse"]
animals: %GREEN%✓%RESET% #2["bonobo", "chameleon", "dormouse"]

0 comments on commit d1877ae

Please sign in to comment.