Файл: concrete5.7.5.6/concrete/vendor/zendframework/zend-queue/tests/ZendQueue/Stomp/ConnectionTest.php
Строк: 216
<?php
/**
* Zend Framework (http://framework.zend.com/)
*
* @link http://github.com/zendframework/zf2 for the canonical source repository
* @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com)
* @license http://framework.zend.com/license/new-bsd New BSD License
* @package Zend_Queue
*/
namespace ZendQueueTestStomp;
use ZendQueueStompClient;
use ZendQueueStompConnection;
use ZendQueueStompFrame;
use PHPUnit_Framework_TestCase as Testcase;
/*
* The adapter test class provides a universal test class for all of the
* abstract methods.
*
* All methods marked not supported are explictly checked for for throwing
* an exception.
*/
/**
* @category Zend
* @package Zend_Queue
* @subpackage UnitTests
* @group Zend_Queue
*/
class ConnectionSocketOverload extends Connection
{
/**
* bypass the open function as it uses fopensocket, inject socket instead
* @param resource $socket
*/
public function setSocket($socket)
{
$this->_socket = $socket;
}
}
class ConnectionTest extends TestCase
{
public $_socket = null;
public function setUp()
{
$tmpfile = tempnam("/tmp", "PHPUnit-");
$this->_socket = fopen($tmpfile, 'w+');
unlink($tmpfile);
}
public function tearDown()
{
fclose($this->_socket);
$this->_socket = null;
}
public function testConnectionException()
{
$connection = new ConnectionSocketOverload();
try {
$connection->write($frame);
$this->fail('should have thrown a not connected exception');
} catch (Exception $e) {
$this->assertTrue(true);
}
try {
$connection->close();
$this->fail('should have thrown a not connected exception');
} catch (Exception $e) {
$this->assertTrue(true);
}
}
public function testMessageAutoContentLengthOn()
{
$frame = new Frame();
$frame->setCommand('TESTING');
$frame->setAutoContentLength(true);
$frame->setBody("hello world");
$connection = new ConnectionSocketOverload();
$connection->setSocket($this->_socket);
$connection->write($frame);
rewind($this->_socket);
$this->assertTrue($connection->canRead());
$test = $connection->read();
$this->assertEquals("hello world", $test->getBody());
}
public function testMessageAutoContentLengthOff()
{
$frame = new Frame();
$frame->setCommand('TESTING');
$frame->setAutoContentLength(false);
$frame->setBody("hello world");
$connection = new ConnectionSocketOverload();
$connection->setSocket($this->_socket);
$connection->write($frame);
rewind($this->_socket);
$this->assertTrue($connection->canRead());
$test = $connection->read();
$this->assertEquals("hello world", $test->getBody());
}
public function testByteMessageAutoContentLengthOff()
{
$frame = new Frame();
$frame->setCommand('TESTING');
$frame->setAutoContentLength(false);
$frame->setBody('hello ' . Frame::END_OF_FRAME . ' world');
$connection = new ConnectionSocketOverload();
$connection->setSocket($this->_socket);
$connection->write($frame);
rewind($this->_socket);
$test = $connection->read();
$this->assertNotSame('hello ' . Frame::END_OF_FRAME . ' world', $test->getBody());
}
public function testByteMessageAutoContentLengthOn()
{
$frame = new Frame();
$frame->setCommand('TESTING');
$frame->setAutoContentLength(true);
$frame->setBody('hello ' . Frame::END_OF_FRAME . ' world');
$connection = new ConnectionSocketOverload();
$connection->setSocket($this->_socket);
$connection->write($frame);
rewind($this->_socket);
$test = $connection->read();
$this->assertEquals('hello ' . Frame::END_OF_FRAME . ' world', $test->getBody());
}
}