Exemple #1
0
    /**
     * Test SQS methods
     *
     * @return void
     */
    public function testSqs()
    {
        try {
            $queue_url = $this->_amazon->create($this->_queue_name, 45);
            $timeout = $this->_amazon->getAttribute($queue_url, 'VisibilityTimeout');
            $this->assertEquals(45, $timeout, 'VisibilityTimeout attribute is not 45');

            $test_msg = 'this is a test';
            $this->_amazon->send($queue_url, $test_msg);

            $messages = $this->_amazon->receive($queue_url);

            foreach ($messages as $message) {
                $this->assertEquals($test_msg, $message['body']);
            }

            foreach ($messages as $message) {
                $result = $this->_amazon->deleteMessage($queue_url, $message['handle']);
                $this->assertTrue($result, 'Message was not deleted');
            }

            $count = $this->_amazon->count($queue_url);
            $this->assertEquals(0, $count);

            $this->_amazon->delete($queue_url);
        } catch (\Exception $e) {
            $this->fail($e->getMessage());
        }
    }
 /**
  * Get a key/value array of metadata for the given queue.
  *
  * @param  string $queueId
  * @param  array  $options
  * @return array
  */
 public function fetchQueueMetadata($queueId, $options = null)
 {
     try {
         // TODO: ZF-9050 Fix the SQS client library in trunk to return all attribute values
         $attributes = $this->_sqs->getAttribute($queueId, 'All');
         if (is_array($attributes)) {
             return $attributes;
         } else {
             return array('All' => $this->_sqs->getAttribute($queueId, 'All'));
         }
     } catch (Zend_Service_Amazon_Exception $e) {
         throw new Zend_Cloud_QueueService_Exception('Error on fetching queue metadata: ' . $e->getMessage(), $e->getCode(), $e);
     }
 }