コード例 #1
0
 /**
  * @param bool $usingDeferred
  * @throws RuntimeException
  */
 private function assertDeferred($usingDeferred)
 {
     if ($usingDeferred and !$this->zmqClient->handlesDeferred()) {
         throw new RuntimeException(__CLASS__ . ' cannot handle query messages which require future responses.');
     }
     if ($this->zmqClient->handlesDeferred() and !$usingDeferred) {
         throw new RuntimeException(__CLASS__ . ' cannot handle push and forget messages.');
     }
 }
コード例 #2
0
 /**
  * @test
  */
 public function it_can_handle_rpc()
 {
     $this->zmqClient->handlesDeferred()->willReturn(true)->shouldBeCalled();
     $this->zmqClient->receive()->willReturn($response = 'Hello World')->shouldBeCalled();
     $deferred = $this->prophesize(Deferred::class);
     $deferred->resolve($response)->shouldBeCalled();
     $zmqMessageProducer = $this->zmqMessageProducer;
     $doSomething = new DoSomething(['data' => 'test command']);
     $this->zmqClient->send($this->validate_message_body($doSomething), \ZMQ::MODE_NOBLOCK)->willReturn(null)->shouldBeCalled();
     $zmqMessageProducer($doSomething, $deferred->reveal());
 }