public function testSendFrameWithSyncWillLeadToMessageWithReceiptHeader() { $connection = $this->getMockBuilder('\\Stomp\\Connection')->setMethods(array('writeFrame', 'readFrame'))->disableOriginalConstructor()->getMock(); $connection->expects($this->once())->method('readFrame')->will($this->returnValue(false)); $lastWriteFrame = null; $connection->expects($this->once())->method('writeFrame')->will($this->returnCallback(function ($frame) use(&$lastWriteFrame) { $lastWriteFrame = $frame; })); $stomp = new Stomp($connection); try { $stomp->setReceiptWait(0); $stomp->sendFrame(new Frame(), true); } catch (MissingReceiptException $ex) { // is allowed, since we send no receipt... } /** @var Frame $lastWriteFrame */ $this->assertInstanceOf('\\Stomp\\Frame', $lastWriteFrame); $this->assertArrayHasKey('receipt', $lastWriteFrame->headers, 'Written frame should have a "receipt" header.'); }