fakeHttpClient = new FakeHttpClient(); $this->api = new Api\PetApi($this->fakeHttpClient); $this->pet = new Model\Pet(); } public function testServerVariablesInOperation(): void { # Test default values (if no variables are set) $this->api->addPet($this->pet, 2); $request = $this->fakeHttpClient->getLastRequest(); $this->assertEquals('petstore.swagger.io', $request->getUri()->getHost(), 'Server variable set to default value.'); # Test variables substitution $this->api->addPet($this->pet, 2, [ 'server' => 'qa-petstore', 'port' => '8080']); $request = $this->fakeHttpClient->getLastRequest(); $this->assertEquals('qa-petstore.swagger.io', $request->getUri()->getHost(), 'Server set to "qa-petstore"'); $this->assertEquals(8080, $request->getUri()->getPort(), 'Port set to 8080'); } public function testLegacyServerChoiceInOperation(): void { # Test legacy behavior (set server using api->setHostIndex() $this->api->setHostIndex(1); $this->api->addPet($this->pet); $request = $this->fakeHttpClient->getLastRequest(); $this->assertEquals('path-server-test.petstore.local', $request->getUri()->getHost(), 'Server set using legacy behavior'); } public function testInvalidVariableValueInOperation(): void { $this->expectException(InvalidArgumentException::class); $this->api->addPet($this->pet, 2,['server' => 'invalid-value']); } }