예제 #1
0
 public function testConstruct()
 {
     $message = new Message();
     $message->setContent('A message');
     $stdMessage = new ZendMessage();
     $stdMessage->setContent('A stdlib message');
     //Test array of Message, without queue in constructor
     $messages = new MessageIterator([$message, $stdMessage]);
     $this->assertEquals($message, $messages->current());
     $messages->next();
     $this->assertEquals($stdMessage, $messages->current());
     $this->assertNull($messages->getQueue());
     $this->assertNull($messages->getQueueClass());
     //Test array of array, without queue in constructor
     $messages = new MessageIterator([['content' => 'a message']]);
     $this->assertEquals('a message', $messages->current()->getContent());
     $this->assertInstanceOf($this->queue->getOptions()->getMessageClass(), $messages->current());
     //Test with queue in constructor
     $messages = new MessageIterator([$message, $stdMessage], $this->queue);
     $this->assertTrue($this->queue === $messages->getQueue());
     $this->assertEquals(get_class($this->queue), $this->messages->getQueueClass());
 }
예제 #2
0
 public function testUnscheduleMessage()
 {
     $message = new Message();
     $providedOptions = [SendParameters::SCHEDULE => time() + 60, SendParameters::REPEATING_INTERVAL => 3600];
     $mockAdapter = $this->getMock(Adapter\Capabilities\DeleteMessageCapableInterface::class);
     $mockAdapter->expects($this->any())->method('getAvailableSendParams')->will($this->returnValue([SendParameters::SCHEDULE, SendParameters::REPEATING_INTERVAL]));
     /** @var $mockAdapter Adapter\AdapterInterface */
     $q = new Queue('test', $mockAdapter);
     $message->setMetadata($q->getOptions()->getMessageMetadatumKey(), ['options' => $providedOptions]);
     /** @var $mockAdapter \PHPUnit_Framework_MockObject_MockObject */
     $mockAdapter->expects($this->any())->method('getMessageInfo')->with($this->equalTo($q), $this->equalTo($message))->will($this->returnValue(['options' => $providedOptions]));
     $mockAdapter->expects($this->any())->method('deleteMessage')->with($this->equalTo($q), $this->equalTo($message))->will($this->returnValue(true));
     $this->assertTrue($q->isSendParamSupported(SendParameters::SCHEDULE));
     $this->assertTrue($q->isSendParamSupported(SendParameters::REPEATING_INTERVAL));
     $this->assertTrue($q->unschedule($message));
     $messageInfo = $message->getMetadata($q->getOptions()->getMessageMetadatumKey());
     $this->assertArrayHasKey('options', $messageInfo);
     $this->assertArrayNotHasKey(SendParameters::SCHEDULE, $messageInfo['options']);
     $this->assertArrayNotHasKey(SendParameters::REPEATING_INTERVAL, $messageInfo['options']);
 }