123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113 |
- <?php
- namespace Predis;
- use PredisTestCase;
- use Predis\Connection\SingleConnectionInterface;
- class CommunicationExceptionTest extends PredisTestCase
- {
-
- public function testExceptionMessage()
- {
- $message = 'Connection error message.';
- $connection = $this->getMockedConnectionBase();
- $exception = $this->getException($connection, $message);
- $this->setExpectedException('Predis\CommunicationException', $message);
- throw $exception;
- }
-
- public function testExceptionConnection()
- {
- $connection = $this->getMockedConnectionBase();
- $exception = $this->getException($connection, 'ERROR MESSAGE');
- $this->assertSame($connection, $exception->getConnection());
- }
-
- public function testShouldResetConnection()
- {
- $connection = $this->getMockedConnectionBase();
- $exception = $this->getException($connection, 'ERROR MESSAGE');
- $this->assertTrue($exception->shouldResetConnection());
- }
-
- public function testCommunicationExceptionHandling()
- {
- $connection = $this->getMock('Predis\Connection\SingleConnectionInterface');
- $connection->expects($this->once())->method('isConnected')->will($this->returnValue(true));
- $connection->expects($this->once())->method('disconnect');
- $exception = $this->getException($connection, 'Communication error');
- CommunicationException::handle($exception);
- }
-
-
-
-
- protected function getMockedConnectionBase($parameters = null)
- {
- $builder = $this->getMockBuilder('Predis\Connection\AbstractConnection');
- if ($parameters === null) {
- $builder->disableOriginalConstructor();
- } elseif (!$parameters instanceof ConnectionParametersInterface) {
- $parameters = new ConnectionParameters($parameters);
- }
- return $builder->getMockForAbstractClass(array($parameters));
- }
-
- protected function getException(SingleConnectionInterface $connection, $message, $code = 0, \Exception $inner = null)
- {
- $arguments = array($connection, $message, $code, $inner);
- $mock = $this->getMockForAbstractClass('Predis\CommunicationException', $arguments);
- return $mock;
- }
- }
|