config = array( 'name' => 'queue1', ); $this->queue = new Zend_Queue('Null', $this->config); } protected function tearDown() { } public function testConst() { $this->assertTrue(is_string(Zend_Queue::TIMEOUT)); $this->assertTrue(is_integer(Zend_Queue::VISIBILITY_TIMEOUT)); $this->assertTrue(is_string(Zend_Queue::NAME)); } /** * Constructor * * @param string|Zend_Queue_Adapter_Abstract $adapter * @param array $config */ public function testConstruct() { // Test Zend_Config $config = array( 'name' => 'queue1', 'params' => array(), 'adapter' => 'array' ); $zend_config = new Zend_Config($config); $obj = new Zend_Queue($config); $this->assertTrue($obj instanceof Zend_Queue); $obj = new Zend_Queue($zend_config); $this->assertTrue($obj instanceof Zend_Queue); try { $obj = new Zend_Queue('ops'); $this->fail('Zend_Queue cannot accept a string'); } catch (Exception $e) { $this->assertTrue(true); } } public function testDebugInfo() { $this->assertTrue(is_array($this->queue->debugInfo())); // var_dump($this->queue->debugInfo()); } public function testGetOptions() { $options = $this->queue->getOptions(); $this->assertTrue(is_array($options)); $this->assertEquals($this->config['name'], $options['name']); } public function testSetAndGetAdapter() { $adapter = new Zend_Queue_Adapter_Array($this->config); $this->assertTrue($this->queue->setAdapter($adapter) instanceof Zend_Queue); $this->assertTrue($this->queue->getAdapter($adapter) instanceof Zend_Queue_Adapter_Array); } public function testSetAndGetMessageClass() { $class = 'test'; $this->assertTrue($this->queue->setMessageClass($class) instanceof Zend_Queue); $this->assertEquals($class, $this->queue->getMessageClass()); } public function testSetAndGetMessageSetClass() { $class = 'test'; $this->assertTrue($this->queue->setMessageSetClass($class) instanceof Zend_Queue); $this->assertEquals($class, $this->queue->getMessageSetClass()); } public function testSetAndGetName() { $this->assertEquals($this->config['name'], $this->queue->getName()); } public function testCreateAndDeleteQueue() { // parameter testing try { $this->queue->createQueue(array()); $this->fail('createQueue() $name must be a string'); } catch (Exception $e) { $this->assertTrue(true); } try { $this->queue->createQueue('test', 'test'); $this->fail('createQueue() $timeout must be an integer'); } catch (Exception $e) { $this->assertTrue(true); } // isExists $queue = 'test'; $new = $this->queue->createQueue($queue); $this->assertTrue($new instanceof Zend_Queue); // createQueue() will return true if the adapter cannot // do isExist($queue); // $this->assertFalse($this->queue->createQueue($queue)); if ($new->isSupported('deleteQueue')) { $this->assertTrue($new->deleteQueue()); } } public function testSendAndCountAndReceiveAndDeleteMessage() { if (! $this->queue->isSupported('send') && ! $this->queue->isSupported('receive') && ! $this->queue->isSupported('count')) { $this->markTestSkipped('send/count/receive are not supported'); return; } // ------------------------------------ send() // parameter verification try { $this->queue->send(array()); $this->fail('send() $mesage must be a string'); } catch (Exception $e) { $this->assertTrue(true); } $message = 'Hello world'; // never gets boring! $this->assertTrue($this->queue->send($message) instanceof Zend_Queue_Message); // ------------------------------------ count() $this->assertEquals($this->queue->count(), 1); // ------------------------------------ receive() // parameter verification try { $this->queue->receive(array()); $this->fail('receive() $maxMessages must be a integer or null'); } catch (Exception $e) { $this->assertTrue(true); } try { $this->queue->receive(1, array()); $this->fail('receive() $timeout must be a integer or null'); } catch (Exception $e) { $this->assertTrue(true); } $messages = $this->queue->receive(); $this->assertTrue($messages instanceof Zend_Queue_Message_Iterator); // ------------------------------------ deleteMessage() foreach ($messages as $i => $message) { $this->assertTrue($this->queue->deleteMessage($message)); } } public function testCapabilities() { $list = $this->queue->getCapabilities(); $this->assertTrue(is_array($list)); // these functions must have an boolean answer $func = array( 'create', 'delete', 'send', 'receive', 'deleteMessage', 'getQueues', 'count', 'isExists' ); foreach ( array_values($func) as $f ) { $this->assertTrue(isset($list[$f])); $this->assertTrue(is_bool($list[$f])); } } public function testIsSupported() { $list = $this->queue->getCapabilities(); foreach ( $list as $function => $result ) { $this->assertTrue(is_bool($result)); if ( $result ) { $this->assertTrue($this->queue->isSupported($function)); } else { $this->assertFalse($this->queue->isSupported($function)); } } } public function testGetQueues() { if ($this->queue->isSupported('getQueues')) { $queues = $this->queue->getQueues(); $this->assertTrue(is_array($queues)); $this->assertTrue(in_array($this->config['name'], $queues)); } else { try { $queues = $this->queue->getQueues(); $this->fail('getQueues() should have thrown an error'); } catch (Exception $e) { $this->assertTrue(true); } } } }