|
3 | 3 | namespace Quantum\Tests\Unit\HttpClient\Factories; |
4 | 4 |
|
5 | 5 | use Quantum\HttpClient\Factories\HttpClientFactory; |
| 6 | +use Quantum\HttpClient\Adapters\MultiCurlAdapter; |
| 7 | +use Quantum\HttpClient\Adapters\CurlAdapter; |
6 | 8 | use Quantum\Tests\Unit\AppTestCase; |
7 | 9 | use Quantum\HttpClient\HttpClient; |
8 | | -use Quantum\Di\Di; |
9 | 10 |
|
10 | 11 | class HttpClientFactoryTest extends AppTestCase |
11 | 12 | { |
12 | | - public function setUp(): void |
| 13 | + public function testHttpClientFactoryCreatesSingleRequest(): void |
13 | 14 | { |
14 | | - parent::setUp(); |
| 15 | + $httpClient1 = HttpClientFactory::createRequest('https://example.com'); |
| 16 | + $httpClient2 = HttpClientFactory::createRequest('https://example.org'); |
15 | 17 |
|
16 | | - $this->resetHttpClientFactory(); |
| 18 | + $this->assertInstanceOf(HttpClient::class, $httpClient1); |
| 19 | + $this->assertInstanceOf(CurlAdapter::class, $httpClient1->getAdapter()); |
| 20 | + $this->assertNotSame($httpClient1, $httpClient2); |
17 | 21 | } |
18 | 22 |
|
19 | | - public function testHttpClientFactoryInstance(): void |
| 23 | + public function testHttpClientFactoryCreatesMultiRequest(): void |
20 | 24 | { |
21 | | - $this->assertInstanceOf(HttpClient::class, HttpClientFactory::get()); |
22 | | - } |
23 | | - |
24 | | - public function testHttpClientFactoryReturnsSameInstance(): void |
25 | | - { |
26 | | - $httpClient1 = HttpClientFactory::get(); |
27 | | - $httpClient2 = HttpClientFactory::get(); |
| 25 | + $httpClient1 = HttpClientFactory::createMultiRequest(); |
| 26 | + $httpClient2 = HttpClientFactory::createMultiRequest(); |
28 | 27 |
|
29 | | - $this->assertSame($httpClient1, $httpClient2); |
| 28 | + $this->assertInstanceOf(HttpClient::class, $httpClient1); |
| 29 | + $this->assertTrue($httpClient1->isMultiRequest()); |
| 30 | + $this->assertInstanceOf(MultiCurlAdapter::class, $httpClient1->getAdapter()); |
| 31 | + $this->assertNotSame($httpClient1, $httpClient2); |
30 | 32 | } |
31 | 33 |
|
32 | | - public function testHttpClientFactoryResolveReturnsSameInstance(): void |
| 34 | + public function testHttpClientFactoryCreatesAsyncMultiRequest(): void |
33 | 35 | { |
34 | | - $factory = Di::get(HttpClientFactory::class); |
| 36 | + $success = static function (): void { |
| 37 | + }; |
35 | 38 |
|
36 | | - $httpClient1 = $factory->resolve(); |
37 | | - $httpClient2 = $factory->resolve(); |
| 39 | + $error = static function (): void { |
| 40 | + }; |
38 | 41 |
|
39 | | - $this->assertSame($httpClient1, $httpClient2); |
40 | | - } |
41 | | - |
42 | | - private function resetHttpClientFactory(): void |
43 | | - { |
44 | | - if (!Di::isRegistered(HttpClientFactory::class)) { |
45 | | - Di::register(HttpClientFactory::class); |
46 | | - } |
| 42 | + $httpClient1 = HttpClientFactory::createAsyncMultiRequest($success, $error); |
| 43 | + $httpClient2 = HttpClientFactory::createAsyncMultiRequest($success, $error); |
47 | 44 |
|
48 | | - $factory = Di::get(HttpClientFactory::class); |
49 | | - $this->setPrivateProperty($factory, 'instance', null); |
| 45 | + $this->assertInstanceOf(HttpClient::class, $httpClient1); |
| 46 | + $this->assertTrue($httpClient1->isMultiRequest()); |
| 47 | + $this->assertInstanceOf(MultiCurlAdapter::class, $httpClient1->getAdapter()); |
| 48 | + $this->assertNotSame($httpClient1, $httpClient2); |
50 | 49 | } |
51 | 50 | } |
0 commit comments