/** * @test * @dataProvider responseHeadExamples */ 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); }