private function renderCardinality($minimum, $maximum, $matchCount, $totalCount, $callCount, $isFailureCause)
{
if (!$minimum) {
if (0 === $maximum) {
$expected = '';
} else {
$expected = 'Up to ' . $maximum . ' allowed. ';
}
} elseif (null === $maximum) {
if (1 === $minimum) {
$expected = '';
} else {
$expected = 'At least ' . $minimum . ' required. ';
}
} elseif ($minimum === $maximum) {
$expected = 'Exactly ' . $minimum . ' required. ';
} else {
$expected = 'Between ' . $minimum . ' and ' . $maximum . ' allowed. ';
}
if ($callCount) {
$actual = 'Matched ' . $matchCount . ' of ' . $totalCount . ':';
} else {
$isFailureCause = true;
$actual = 'Never called.';
}
if ($isFailureCause || $expected) {
return PHP_EOL . $this->failStart . $expected . $actual . $this->reset;
}
return PHP_EOL . $expected . $actual;
}