public function evaluateTests($httpVersion, $statusCode, $headers, $expectedOutput)
{
$path = 'responseHead/test';
$this->mockTsRuntime->expects($this->any())->method('evaluate')->will($this->returnCallback(function ($evaluatePath) use($path, $httpVersion, $statusCode, $headers) {
$relativePath = str_replace($path . '/', '', $evaluatePath);
switch ($relativePath) {
case 'httpVersion':
return $httpVersion;
case 'statusCode':
return $statusCode;
case 'headers':
return $headers;
}
return isset($properties[$relativePath]) ? $properties[$relativePath] : null;
}));
$typoScriptObjectName = 'Neos.Fusion:Http.ResponseHead';
$renderer = new ResponseHeadImplementation($this->mockTsRuntime, $path, $typoScriptObjectName);
$result = $renderer->evaluate();
$this->assertEquals($expectedOutput, $result);
}