<?php namespace Ratchet\Tests\Resource; use Ratchet\Resource\Connection; use Ratchet\Tests\Mock\FakeSocket; /** * @covers Ratchet\Resource\Connection */ class ConnectionTest extends \PHPUnit_Framework_TestCase { /** * @var Ratchet\Tests\Mock\FakeSocket */ protected $_fs; /** * @var Ratchet\Resource\Connection */ protected $_c; public function setUp() { $this->_fs = new FakeSocket; $this->_c = new Connection($this->_fs); } public static function keyAndValProvider() { return array( array('hello', 'world') , array('herp', 'derp') , array('depth', array('hell', 'yes')) , array('moar', array('hellz' => 'yes')) ); } public function testGetSocketReturnsWhatIsSetInConstruct() { $this->assertSame($this->_fs, $this->_c->getSocket()); } /** * @dataProvider keyAndValProvider */ public function testCanGetWhatIsSet($key, $val) { $this->_c->{$key} = $val; $this->assertEquals($val, $this->_c->{$key}); } /** * @dataProvider keyAndValProvider */ public function testIssetWorksOnOverloadedVariables($key, $val) { $this->_c->{$key} = $val; $this->assertTrue(isset($this->_c->{$key})); } /** * @dataProvider keyAndValProvider */ public function testUnsetMakesIssetReturnFalse($key, $val) { $this->_c->{$key} = $val; unset($this->_c->{$key}); $this->assertFalse(isset($this->_c->{$key})); } }