createClient(); // THEN expect($client)->toBeInstanceOf(ApiClient::class); }); it('creates ApiClient with logger attached', function () { // GIVEN $config = new ApiConfig( endpoint: new Uri('https://api.example.com'), apiKey: new ClientIdentifier('my-client-id'), secret: new ClientSecret('my-secret-key'), logger: new NullLogger(), ); $factory = new ApiClientFactory($config); // WHEN $client = $factory->createClient(); // THEN expect($client)->toBeInstanceOf(ApiClient::class); }); it('creates ApiClient with self-signed certificates allowed', function () { // GIVEN $config = new ApiConfig( endpoint: new Uri('https://api.example.com'), apiKey: new ClientIdentifier('my-client-id'), secret: new ClientSecret('my-secret-key'), ignoreSelfSignedCert: true, ); $factory = new ApiClientFactory($config); // WHEN $client = $factory->createClient(); // THEN expect($client)->toBeInstanceOf(ApiClient::class); }); it('creates ApiClient with custom retry options', function () { // GIVEN $config = new ApiConfig( endpoint: new Uri('https://api.example.com'), apiKey: new ClientIdentifier('my-client-id'), secret: new ClientSecret('my-secret-key'), maxRetries: 5, retryDelaySeconds: 2, ); $factory = new ApiClientFactory($config); // WHEN $client = $factory->createClient(); // THEN expect($client)->toBeInstanceOf(ApiClient::class); }); });