/** * @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()); }
/** * @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); }
/** * @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); }
/** * @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); }