serializeCommand() . (new PING())->serializeCommand() . (new PING())->serializeCommand(); $connection = $this->getMockBuilder('Predis\Connection\NodeConnectionInterface')->getMock(); $connection ->expects($this->once()) ->method('write') ->with($buffer); $connection ->expects($this->never()) ->method('readResponse'); $pipeline = new FireAndForget(new Client($connection)); $pipeline->ping(); $pipeline->ping(); $pipeline->ping(); $this->assertEmpty($pipeline->execute()); } /** * @group disconnected */ public function testSwitchesToMasterWithReplicationConnection(): void { $buffer = (new PING())->serializeCommand() . (new PING())->serializeCommand() . (new PING())->serializeCommand(); $connection = $this->getMockBuilder('Predis\Connection\Replication\ReplicationInterface') ->getMock(); $connection ->expects($this->once()) ->method('switchToMaster'); $connection ->expects($this->once()) ->method('write') ->with($buffer); $connection ->expects($this->never()) ->method('readResponse'); $pipeline = new FireAndForget(new Client($connection)); $pipeline->ping(); $pipeline->ping(); $pipeline->ping(); $this->assertEmpty($pipeline->execute()); } /** * @group connected * @group cluster * @group relay-incompatible * @requiresRedisVersion >= 6.2.0 */ public function testClusterExecutePipeline(): void { $pipeline = new FireAndForget($this->createClient()); $pipeline->set('foo', 'bar'); $pipeline->get('foo'); $pipeline->set('bar', 'foo'); $pipeline->get('bar'); $pipeline->set('baz', 'baz'); $pipeline->get('baz'); $this->assertEmpty($pipeline->execute()); } }