Initial Commit

This commit is contained in:
Andy Dixon
2026-02-10 09:17:22 +00:00
commit 57637840a5
23 changed files with 2837 additions and 0 deletions
+63
View File
@@ -0,0 +1,63 @@
<?php
declare(strict_types=1);
namespace BlackWall\Auth\Tests;
use BlackWall\Auth\Http\HttpClientInterface;
final class FakeHttpClient implements HttpClientInterface
{
/** @var list<array{status:int,body:string}> */
private array $postQueue = [];
/** @var list<array{status:int,body:string}> */
private array $getQueue = [];
/** @var list<array{url:string,fields:array<string,string>,headers:array<string,string>}> */
public array $postCalls = [];
/** @var list<array{url:string,headers:array<string,string>}> */
public array $getCalls = [];
/**
* @param array{status:int,body:string} $response
*/
public function queuePost(array $response): void
{
$this->postQueue[] = $response;
}
/**
* @param array{status:int,body:string} $response
*/
public function queueGet(array $response): void
{
$this->getQueue[] = $response;
}
public function postForm(string $url, array $fields, array $headers = []): array
{
/** @var array<string, string> $fields */
/** @var array<string, string> $headers */
$this->postCalls[] = ['url' => $url, 'fields' => $fields, 'headers' => $headers];
if ($this->postQueue === []) {
throw new \RuntimeException('No fake POST response queued');
}
return array_shift($this->postQueue);
}
public function get(string $url, array $headers = []): array
{
/** @var array<string, string> $headers */
$this->getCalls[] = ['url' => $url, 'headers' => $headers];
if ($this->getQueue === []) {
throw new \RuntimeException('No fake GET response queued');
}
return array_shift($this->getQueue);
}
}