/**
  * @dataProvider getExecutionTests
  */
 public function testExecuteCode($filename, $fileSource, array $variables, $expectedOutput, $expectedLanguageError)
 {
     $path = $this->testDir . '/' . $filename;
     file_put_contents($path, $fileSource);
     $context = new CodingContext($this->testDir);
     foreach ($variables as $name => $val) {
         $context->addVariable($name, $val);
     }
     $result = new CodingExecutionResult(array($filename => $fileSource));
     $worker = new PhpWorker();
     $worker->executeCode($this->testDir, $filename, $context, $result);
     $this->assertEquals($expectedOutput, $result->getOutput());
     $this->assertEquals($expectedLanguageError, $result->getLanguageError());
 }
 public function setupContext(CodingContext $context)
 {
     $context->addVariable('whatIWantForXmas', 'Puppy');
 }