/**
  * Release the job back into the queue.
  *
  * @param  int $delay
  * @return void
  */
 public function release($delay = 0)
 {
     $req = new ChangeMessageVisibility($this->queue);
     $req->setReceiptHandle($this->job->getReceiptHandle());
     $req->setVisibilityTimeout(!$delay ? 1 : $delay);
     /**
      * @var $res \Mqs\Responses\ChangeMessageVisibility
      */
     $req->send();
 }
 /**
  * @group testMessage
  */
 public function testMessage()
 {
     $req = new SendMessage($this->queue);
     $req->setMessageBody($this->message);
     /**
      * @var $res SendMessageRes
      */
     $res = $req->send();
     $this->assertEquals(strtoupper(md5('{"nihao":"nihao"}')), $res->getMessageBodyMD5());
     $req = new ReceiveMessage($this->queue);
     /**
      * @var $res ReceiveMessageRes
      */
     $res = $req->send();
     $req = new DeleteMessage($this->queue);
     /**
      * @var $delRes DeleteMessageRes
      */
     $delRes = $req->setReceiptHandle($res->getReceiptHandle())->send();
     $this->assertTrue($delRes->isSuccess());
     $req = new SendMessage($this->queue);
     $req->setMessageBody($this->message);
     /**
      * @var $res SendMessageRes
      */
     $res = $req->send();
     $this->assertTrue($res->isSuccess());
     $peekReq = new PeekMessage($this->queue);
     /**
      * @var $peekRes PeekMessageRes
      */
     $peekRes = $peekReq->send();
     $this->assertTrue($peekRes->isSuccess());
     $this->assertNotEmpty($peekRes->getMessageId());
     $this->assertEquals(strtoupper(md5('{"nihao":"nihao"}')), $peekRes->getMessageBodyMD5());
     $req = new ReceiveMessage($this->queue);
     /**
      * @var $res ReceiveMessageRes
      */
     $res = $req->send();
     $cmvReq = new ChangeMessageVisibility($this->queue);
     $cmvReq->setReceiptHandle($res->getReceiptHandle());
     $cmvReq->setVisibilityTimeout(10);
     /**
      * @var $cmvRes ChangeMessageVisibilityRes
      */
     $cmvRes = $cmvReq->send();
     $this->assertTrue($cmvRes->isSuccess());
 }