예제 #1
0
 /**
  * @dataProvider codeProvider
  *
  * @param string $code
  * @param Patch $patch
  * @param string $expectedResult
  */
 public function testPatcher($code, Patch $patch, $expectedResult)
 {
     $patcher = new CodePatcher((new ParserFactory())->create(ParserFactory::PREFER_PHP7), new Standard());
     $exercise = $this->getMock(PatchableExercise::class);
     $exercise->expects($this->once())->method('getPatch')->will($this->returnValue($patch));
     $result = $patcher->patch($exercise, $code);
     $this->assertEquals($expectedResult, $result);
 }
 /**
  * @param Event $event
  */
 public function patch(Event $event)
 {
     $fileName = $event->getParameter('fileName');
     $this->originalCode = file_get_contents($fileName);
     file_put_contents($fileName, $this->codePatcher->patch($event->getParameter('exercise'), $this->originalCode));
 }
예제 #3
0
 /**
  * @param ExerciseRunnerEvent $event
  */
 public function patch(ExerciseRunnerEvent $event)
 {
     $fileName = $event->getInput()->getArgument('program');
     $this->originalCode = file_get_contents($fileName);
     file_put_contents($fileName, $this->codePatcher->patch($event->getExercise(), $this->originalCode));
 }