in util/ActionTest.php [256:307]
private function match(array $actions)
{
$key = key($actions);
if (null === $actions[$key]) {
return YamlTests::render(self::TEMPLATE_IS_NULL, [
':value' => $this->convertResponseField($key)
]);
}
if (is_string($actions[$key]) && substr($actions[$key], 0, 1) !== '$') {
$expected = sprintf("'%s'", addslashes($actions[$key]));
} elseif (is_string($actions[$key]) && substr($actions[$key], 0, 2) === '${') {
$expected = sprintf("\$%s", substr($actions[$key],2, strlen($actions[$key])-3));
} elseif (is_bool($actions[$key])) {
$expected = $actions[$key] ? 'true' : 'false';
} elseif (is_array($actions[$key])) {
$expected = $this->removeObjectFromArray($actions[$key]);
} else {
$expected = $actions[$key];
}
$vars = [
':expected' => $expected,
':value' => $this->convertResponseField($key)
];
if (is_string($expected) && $this->isRegularExpression($expected)) {
$vars[':expected'] = $this->convertJavaRegexToPhp($vars[':expected']);
// Add /sx preg modifier to ignore whitespace
$vars[':expected'] .= "sx";
if ($vars[':value'] === '$response') {
$vars[':value'] = '$response->asString()';
}
return YamlTests::render(
($this->phpUnitVersion > 8) ? (self::TEMPLATE_PHPUNIT9_MATCH_REGEX) : (self::TEMPLATE_MATCH_REGEX),
$vars
);
} elseif (is_array($expected)) {
if ($vars[':value'] === '$response') {
$vars[':value'] = '$response->asArray()';
}
} elseif (is_bool($expected)) {
if ($vars[':value'] === '$response') {
$vars[':value'] = '$response->asBool()';
}
}
if ($expected instanceof stdClass && empty(get_object_vars($expected))) {
$vars[':expected'] = '[]';
if ($vars[':value'] === '$response') {
$vars[':value'] = '$response->asArray()';
}
}
return YamlTests::render(self::TEMPLATE_MATCH_EQUAL, $vars);
}