assertInstanceOf($expectedStrategy, $resolver->resolve($connection, new MultiExecState())); } /** * @return void */ public function testResolveThrowsExceptionOnNonExistingCOnnection(): void { $connection = $this->getMockBuilder(ConnectionInterface::class)->getMock(); $resolver = new ConnectionStrategyResolver(); $this->expectException(InvalidArgumentException::class); $this->expectExceptionMessage('Cannot resolve strategy associated with this connection type'); $resolver->resolve($connection, new MultiExecState()); } public function connectionProvider(): array { return [ 'with cluster connection' => [ $this->getMockBuilder(ClusterInterface::class)->getMock(), ClusterConnectionStrategy::class, ], 'with node connection' => [ $this->getMockBuilder(NodeConnectionInterface::class)->getMock(), NodeConnectionStrategy::class, ], 'with replication connection' => [ $this->getMockBuilder(ReplicationInterface::class)->getMock(), ReplicationConnectionStrategy::class, ], ]; } }