resolver = new ParserStrategyResolver(); } /** * @dataProvider protocolProvider * @group disconnected * @param int $protocolVersion * @param string $expectedStrategy * @return void */ public function testResolveCorrectlyResolvesStrategyForGivenProtocolVersion( int $protocolVersion, string $expectedStrategy ): void { $this->assertInstanceOf($expectedStrategy, $this->resolver->resolve($protocolVersion)); } /** * @group disconnected * @return void */ public function testResolveThrowsExceptionOnUnexpectedProtocolVersion(): void { $this->expectException(InvalidArgumentException::class); $this->expectExceptionMessage('Invalid protocol version given.'); $this->resolver->resolve(4); } public function protocolProvider(): array { return [ 'with RESP2 protocol' => [2, Resp2Strategy::class], 'with RESP3 protocol' => [3, Resp3Strategy::class], ]; } }