getMockBuilder('Predis\Command\CommandInterface')->getMock(); $command ->expects($this->once()) ->method('getId') ->willReturn('PING'); $command ->expects($this->once()) ->method('getArguments') ->willReturn([]); $connection = $this->getMockConnectionOfType('Predis\Connection\CompositeConnectionInterface'); $connection ->expects($this->once()) ->method('writeBuffer') ->with($this->equalTo($serialized)); $protocol->write($connection, $command); } /** * @group disconnected */ public function testConnectionRead(): void { $protocol = new ProtocolProcessor(); $connection = $this->getMockConnectionOfType('Predis\Connection\CompositeConnectionInterface'); $connection ->expects($this->exactly(5)) ->method('readLine') ->willReturnOnConsecutiveCalls( '+OK', '-ERR error message', ':2', '$-1', '*-1' ); $this->assertEquals('OK', $protocol->read($connection)); $this->assertEquals('ERR error message', $protocol->read($connection)); $this->assertSame(2, $protocol->read($connection)); $this->assertNull($protocol->read($connection)); $this->assertNull($protocol->read($connection)); } /** * @group disconnected */ public function testIterableMultibulkSupport(): void { $protocol = new ProtocolProcessor(); $protocol->useIterableMultibulk(true); $connection = $this->getMockConnectionOfType('Predis\Connection\CompositeConnectionInterface'); $connection ->expects($this->once()) ->method('readLine') ->willReturn('*1'); $this->assertInstanceOf('Predis\Response\Iterator\MultiBulk', $protocol->read($connection)); } /** * @group disconnected */ public function testUnknownResponsePrefix(): void { $this->expectException('Predis\Protocol\ProtocolException'); $this->expectExceptionMessage("Unknown response prefix: '!' [tcp://127.0.0.1:6379]"); $protocol = new ProtocolProcessor(); $connection = $this->getMockConnectionOfType('Predis\Connection\CompositeConnectionInterface', 'tcp://127.0.0.1:6379'); $connection ->expects($this->once()) ->method('readLine') ->willReturn('!'); $protocol->read($connection); } }