mock = $this->getMock('\\Ratchet\\Wamp\\WampServerInterface'); $this->serv = new WampServer($this->mock); $this->conn = $this->getMock('\\Ratchet\\ConnectionInterface'); $this->serv->onOpen($this->conn); } public function isWampConn() { return new \PHPUnit_Framework_Constraint_IsInstanceOf('\\Ratchet\\Wamp\\WampConnection'); } public function testOpen() { $this->mock->expects($this->once())->method('onOpen')->with($this->isWampConn()); $this->serv->onOpen($this->getMock('\\Ratchet\\ConnectionInterface')); } public function testOnClose() { $this->mock->expects($this->once())->method('onClose')->with($this->isWampConn()); $this->serv->onClose($this->conn); } public function testOnError() { $e = new \Exception('hurr hurr'); $this->mock->expects($this->once())->method('onError')->with($this->isWampConn(), $e); $this->serv->onError($this->conn, $e); } public function testOnMessageToEvent() { $published = 'Client published this message'; $this->mock->expects($this->once())->method('onPublish')->with( $this->isWampConn() , new \PHPUnit_Framework_Constraint_IsInstanceOf('\\Ratchet\\Wamp\\Topic') , $published , array() , array() ); $this->serv->onMessage($this->conn, json_encode(array(7, 'topic', $published))); } public function testGetSubProtocols() { // todo: could expand on this $this->assertInternalType('array', $this->serv->getSubProtocols()); } }