public function testRunAsync()
 {
     $processMock = $this->getMockBuilder('Symfony\\Component\\Process\\Process')->disableOriginalConstructor()->getMock();
     $processMock->method('start')->willReturn($processMock);
     $processMock->method('wait')->willReturn(true);
     $processMock->method('getOutput')->willReturn(file_get_contents($this->outputPath));
     $processMock->method('isSuccessful')->willReturn(true);
     $processBuilderMock = $this->getMockBuilder('Symfony\\Component\\Process\\ProcessBuilder')->disableOriginalConstructor()->getMock();
     $processBuilderMock->method('getProcess')->willReturn($processMock);
     $mediaInfoCommandRunner = new MediaInfoCommandRunner($this->filePath, null, array('--OUTPUT=XML', '-f'), $processBuilderMock);
     $mediaInfoCommandRunner->start();
     // do some stuff in between, count to 5
     $i = 0;
     do {
         $i++;
     } while ($i < 5);
     // block and complete operation
     $output = $mediaInfoCommandRunner->wait();
     $this->assertEquals(file_get_contents($this->outputPath), $output);
 }
Пример #2
0
 /**
  * Call to start asynchronous process.
  *
  * Make call to MediaInfo::getInfoWaitAsync() afterwards to received MediaInfoContainer object.
  *
  * @param $filePath
  */
 public function getInfoStartAsync($filePath)
 {
     $mediaInfoCommandBuilder = new MediaInfoCommandBuilder();
     $this->mediaInfoCommandRunnerAsync = $mediaInfoCommandBuilder->buildMediaInfoCommandRunner($filePath);
     $this->mediaInfoCommandRunnerAsync->start();
 }