forked from loafle/openapi-generator-original
		
	* [FEATURE] Support for server variables in operations * [AUTOGENERATED] update samples * [PHP] Added tests for server variables in operations
		
			
				
	
	
		
			59 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			59 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
<?php
 | 
						|
 | 
						|
namespace OpenAPI\Client;
 | 
						|
 | 
						|
use InvalidArgumentException;
 | 
						|
use OpenAPI\Client\Api\PetApi;
 | 
						|
use PHPUnit\Framework\TestCase;
 | 
						|
 | 
						|
require_once __DIR__ . '/FakeHttpClient.php';
 | 
						|
 | 
						|
/**
 | 
						|
 * Tests for server variables in operations
 | 
						|
 */
 | 
						|
class ServerVariablesInOperationTest extends TestCase
 | 
						|
{
 | 
						|
    private FakeHttpClient $fakeHttpClient;
 | 
						|
    private PetApi $api;
 | 
						|
    private Model\Pet $pet;
 | 
						|
 | 
						|
    public function setUp(): void
 | 
						|
    {
 | 
						|
        $this->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']);
 | 
						|
    }
 | 
						|
}
 |