Exemplo n.º 1
0
 public function testExceptionResult()
 {
     $serializer = new JMSSerializer();
     $replyMessage1 = new ReplyMessage(self::COMMAND_ID, $serializer, new \RuntimeException("Exception !!!"), false);
     $bytes = $replyMessage1->toBytes();
     $replyMessage2 = ReplyMessage::fromBytes($serializer, $bytes);
     $this->assertEquals($replyMessage1->getReturnValue(), $replyMessage2->getReturnValue());
     $this->assertEquals($replyMessage1->getError(), $replyMessage2->getError());
     $this->assertEquals($replyMessage1->getCommandIdentifier(), $replyMessage2->getCommandIdentifier());
     $this->assertFalse($replyMessage1->isSuccess());
     $this->assertFalse($replyMessage2->isSuccess());
 }
Exemplo n.º 2
0
 public function processCommand()
 {
     $data = $this->template->dequeueCommand();
     if (null === $data) {
         $this->logger->info('Timeout while waiting for commands, re-entering loop');
         return;
     }
     $dispatchMessage = DispatchMessage::fromBytes($this->serializer, $data[1]);
     $self = $this;
     $successCallback = function ($result) use($dispatchMessage, $self) {
         $message = new ReplyMessage($dispatchMessage->getCommandIdentifier(), $self->serializer, $result);
         $self->template->writeCommandReply($dispatchMessage->getCommandIdentifier(), $message->toBytes());
     };
     $failureCallback = function (\Exception $cause) use($dispatchMessage, $self) {
         $message = new ReplyMessage($dispatchMessage->getCommandIdentifier(), $self->serializer, $cause, false);
         $self->template->writeCommandReply($dispatchMessage->getCommandIdentifier(), $message->toBytes());
     };
     $this->localSegment->dispatch($dispatchMessage->getCommandMessage(), $dispatchMessage->isExpectReply() ? new ClosureCommandCallback($successCallback, $failureCallback) : null);
 }