'foo')); $adapter->receive(null, null, $queue); $adapter->receive(null, null, $queue); // iterate through mock StompClient and ensure SUBSCRIBE is only sent once per queue $subscribes = 0; foreach ($stompClient->frameStack as $frame) { if ($frame->getCommand() === 'SUBSCRIBE') { $subscribes++; } } $this->assertEquals(1, $subscribes); } } class StompClientMock extends Zend_Queue_Stomp_Client { public $frameStack = array(); public $responseStack = array(); public function __construct() { // spoof a successful connection in the response stack $frame = new Zend_Queue_Stomp_Frame; $frame->setCommand('CONNECTED'); $this->responseStack[] = $frame; } public function __destruct() {} public function send(Zend_Queue_Stomp_FrameInterface $frame) { $this->frameStack[] = $frame; return $this; } public function receive() { return array_shift($this->responseStack); } public function canRead() { return count($this->responseStack) > 0; } public function createFrame() { return new Zend_Queue_Stomp_Frame; } }