示例#1
0
 /**
  * @return void
  */
 public function testRun()
 {
     /** @var $worker PHPUnit_Framework_MockObject_MockObject|jp_worker_Interface */
     $worker = $this->getMock('jp_worker_Interface');
     $worker->expects($this->exactly(5))->method('processItem')->with($this->isInstanceOf('ExampleData'))->will($this->returnValue(true));
     /** @var $client PHPUnit_Framework_MockObject_MockObject|JobPoolIf */
     $client = $this->getMock('JobPoolIf');
     $client->expects($this->exactly(6))->method('acquire')->will($this->returnCallback(array($this, 'mockAcquire')));
     $protocolFactory = new TBinaryProtocolFactory();
     $transport = new TMemoryBuffer();
     $protocol = $protocolFactory->getProtocol($transport);
     // Fill a mock queue backend
     for ($i = 0; $i < 5; $i++) {
         /** @var $job PHPUnit_Framework_MockObject_MockObject|Job */
         $job = $this->getMock('Job');
         $doc = new ExampleData();
         $doc->language = 'php';
         $doc->api = 'simple' . $i;
         $doc->format = 'thrift';
         $doc->write($protocol);
         $message = $transport->read($transport->available());
         $job->message = $message;
         $job->id = $i;
         $this->addToQueueBackend($job);
     }
     $consumer = new jp_consumer_Thrift('foo', array('client' => $client, 'poll_interval' => 0), $worker, 'ExampleData');
     $this->assertEquals(5, $consumer->run());
 }
示例#2
0
文件: Thrift.php 项目: nick-jones/jp
 /**
  * @param string $queue
  * @param array $options
  * @return void
  */
 public function __construct($queue, $options = array())
 {
     require_once 'Thrift/protocol/TBinaryProtocol.php';
     require_once 'Thrift/transport/TMemoryBuffer.php';
     $protocolFactory = new TBinaryProtocolFactory();
     $this->_transport = new TMemoryBuffer();
     $this->_protocol = $protocolFactory->getProtocol($this->_transport);
     parent::__construct($queue, $options);
 }
示例#3
0
文件: Thrift.php 项目: nick-jones/jp
 /**
  * @throws InvalidArgumentException
  * @param string $queue
  * @param array $options
  * @param string $className
  * @return void
  */
 public function __construct($queue, $options = array(), jp_worker_Interface $worker = null, $className = '')
 {
     require_once 'Thrift/protocol/TBinaryProtocol.php';
     require_once 'Thrift/transport/TMemoryBuffer.php';
     if (empty($className)) {
         throw new InvalidArgumentException();
     }
     $protocolFactory = new TBinaryProtocolFactory();
     $this->_transport = new TMemoryBuffer();
     $this->_protocol = $protocolFactory->getProtocol($this->_transport);
     $this->_className = $className;
     parent::__construct($queue, $options, $worker);
 }
示例#4
0
 /**
  * @return void
  */
 public function testAdd()
 {
     $doc = new ExampleData();
     $doc->language = 'php';
     $doc->api = 'simple';
     $doc->format = 'thrift';
     $protocolFactory = new TBinaryProtocolFactory();
     $transport = new TMemoryBuffer();
     $protocol = $protocolFactory->getProtocol($transport);
     $doc->write($protocol);
     $message = $transport->read($transport->available());
     /** @var $client PHPUnit_Framework_MockObject_MockObject|JobPoolIf */
     $client = $this->getMock('JobPoolIf');
     $client->expects($this->once())->method('add')->with($this->equalTo('foo'), $this->equalTo($message));
     $consumer = new jp_producer_Thrift('foo', array('client' => $client));
     $consumer->add($doc);
 }