You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
50 lines
1.7 KiB
50 lines
1.7 KiB
<?php |
|
namespace Ratchet; |
|
|
|
abstract class AbstractMessageComponentTestCase extends \PHPUnit_Framework_TestCase { |
|
protected $_app; |
|
protected $_serv; |
|
protected $_conn; |
|
|
|
abstract public function getConnectionClassString(); |
|
abstract public function getDecoratorClassString(); |
|
abstract public function getComponentClassString(); |
|
|
|
public function setUp() { |
|
$this->_app = $this->getMock($this->getComponentClassString()); |
|
$decorator = $this->getDecoratorClassString(); |
|
$this->_serv = new $decorator($this->_app); |
|
$this->_conn = $this->getMock('\Ratchet\ConnectionInterface'); |
|
|
|
$this->doOpen($this->_conn); |
|
} |
|
|
|
protected function doOpen($conn) { |
|
$this->_serv->onOpen($conn); |
|
} |
|
|
|
public function isExpectedConnection() { |
|
return new \PHPUnit_Framework_Constraint_IsInstanceOf($this->getConnectionClassString()); |
|
} |
|
|
|
public function testOpen() { |
|
$this->_app->expects($this->once())->method('onOpen')->with($this->isExpectedConnection()); |
|
$this->doOpen($this->getMock('\Ratchet\ConnectionInterface')); |
|
} |
|
|
|
public function testOnClose() { |
|
$this->_app->expects($this->once())->method('onClose')->with($this->isExpectedConnection()); |
|
$this->_serv->onClose($this->_conn); |
|
} |
|
|
|
public function testOnError() { |
|
$e = new \Exception('Whoops!'); |
|
$this->_app->expects($this->once())->method('onError')->with($this->isExpectedConnection(), $e); |
|
$this->_serv->onError($this->_conn, $e); |
|
} |
|
|
|
public function passthroughMessageTest($value) { |
|
$this->_app->expects($this->once())->method('onMessage')->with($this->isExpectedConnection(), $value); |
|
$this->_serv->onMessage($this->_conn, $value); |
|
} |
|
}
|
|
|