コード例 #1
0
ファイル: Queue.php プロジェクト: ThorstenSuckow/conjoon
 /**
  * Send a message to the queue
  *
  * @param  Custom_Message|Custom_Messages $message message
  * @return $this
  * @throws Zend_Queue_Exception
  */
 public function send($message)
 {
     if (!($message instanceof Custom_Message || $message instanceof Custom_Messages)) {
         /**
          * @see Zend_Queue_Exception
          */
         require_once 'Zend/Queue/Exception.php';
         throw new Zend_Queue_Exception('$message must be an instance of Custom_Message or Custom_Messages');
     }
     if ($message instanceof Custom_Message) {
         $response = parent::send($message->__toString());
     } else {
         foreach ($message as $i => $one) {
             $response = parent::send($one->__toString());
         }
     }
     return $this;
 }
コード例 #2
0
ファイル: CustomTest.php プロジェクト: omusico/logica
 public function test_behavior()
 {
     $object_count = 10;
     $objects = array();
     $queue = new Custom_Queue('Array', array('name' => 'ObjectA'));
     $this->assertTrue($queue instanceof Custom_Queue);
     // ------------------------------------------------ send
     // add items $objects[0-4]
     $objects = array();
     for ($i = 0; $i < $object_count - 5; $i++) {
         $object = new Custom_Object();
         $queue->send(new Custom_Message($object));
         $objects[] = $object;
     }
     // add items $objects[5-9]
     $messages = new Custom_Messages();
     for ($i = 0; $i < 5; $i++) {
         $object = new Custom_Object();
         $messages->append(new Custom_Message($object));
         $objects[] = $object;
     }
     $queue->send($messages);
     $this->assertEquals($object_count, count($queue));
     unset($messages);
     // ------------------------------------------------ receive
     // get the first 5 doing 0-4
     $receive = $queue->receive(5);
     $this->assertTrue($receive instanceof Custom_Messages);
     $this->assertEquals(5, count($receive));
     // test them
     for ($index = 0; $index < 5; $index++) {
         $this->assertEquals($objects[$index]->getA(), $receive[$index]->getBody()->getA());
         try {
             unset($receive[$index]);
             $this->assertTrue(true, '$receive[$index] successfully deleted');
         } catch (Zend_Queue_Exception $e) {
             $this->fail('$receive[$index] should have been deleted' . $e->getMessage());
         }
     }
     // there should only be 5 objects left
     $this->assertEquals($object_count - $index, count($queue));
     // get 1 doing $objects[5]
     $receive = $queue->receive();
     $index++;
     $this->assertTrue($receive instanceof Custom_Messages);
     $this->assertEquals(1, count($receive));
     // testing Custom_Messages::__deconstruct()
     unset($receive);
     $this->assertEquals($object_count - $index, count($queue));
     // get all the rest doing 6-20
     $receive = $queue->receive($object_count - $index);
     $this->assertTrue($receive instanceof Custom_Messages);
     $this->assertEquals($object_count - $index, count($receive));
     // test them
     $r_index = -1;
     for (; $index < $object_count; $index++) {
         $r_index++;
         $this->assertEquals($objects[$index]->getA(), $receive[$r_index]->getBody()->getA());
         try {
             unset($receive[$r_index]);
             $this->assertTrue(true, '$receive[$index] successfully deleted');
         } catch (Zend_Queue_Exception $e) {
             $this->fail('$receive[$index] should have been deleted' . $e->getMessage());
         }
     }
     // auto-delete should have been called on $receive
     $this->assertEquals(0, count($queue));
 }