Skip to content

Commit 5083110

Browse files
committed
Add tests
1 parent 427a763 commit 5083110

File tree

2 files changed

+59
-1
lines changed

2 files changed

+59
-1
lines changed

phpunit.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
failOnRisky="true"
1313
failOnWarning="true">
1414
<testsuites>
15-
<testsuite name="Fast Forward Http Message Test Suite">
15+
<testsuite name="Fast Forward Http Test Suite">
1616
<directory>tests</directory>
1717
</testsuite>
1818
</testsuites>
Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
<?php
2+
3+
declare(strict_types=1);
4+
5+
namespace FastForward\Http\Tests\ServiceProvider;
6+
7+
use FastForward\Container\ServiceProvider\AggregateServiceProvider;
8+
use FastForward\Http\Client\ServiceProvider\HttpClientServiceProvider;
9+
use FastForward\Http\Message\Factory\ServiceProvider\HttpMessageFactoryServiceProvider;
10+
use FastForward\Http\ServiceProvider\HttpServiceProvider;
11+
use PHPUnit\Framework\Attributes\CoversClass;
12+
use PHPUnit\Framework\TestCase;
13+
14+
#[CoversClass(HttpServiceProvider::class)]
15+
final class HttpServiceProviderTest extends TestCase
16+
{
17+
private HttpServiceProvider $provider;
18+
19+
protected function setUp(): void
20+
{
21+
$this->provider = new HttpServiceProvider();
22+
}
23+
24+
public function testGetFactoriesWillIncludeAllAggregatedFactories(): void
25+
{
26+
$expectedFactories = array_merge(
27+
(new HttpMessageFactoryServiceProvider())->getFactories(),
28+
(new HttpClientServiceProvider())->getFactories(),
29+
[AggregateServiceProvider::class => fn() => null]
30+
);
31+
32+
$actualFactories = $this->provider->getFactories();
33+
34+
foreach ($expectedFactories as $id => $factory) {
35+
self::assertArrayHasKey($id, $actualFactories);
36+
self::assertIsCallable($actualFactories[$id]);
37+
}
38+
39+
self::assertSameSize($expectedFactories, $actualFactories);
40+
}
41+
42+
public function testGetExtensionsWillIncludeAllAggregatedExtensions(): void
43+
{
44+
$expectedExtensions = array_merge(
45+
(new HttpMessageFactoryServiceProvider())->getExtensions(),
46+
(new HttpClientServiceProvider())->getExtensions()
47+
);
48+
49+
$actualExtensions = $this->provider->getExtensions();
50+
51+
foreach ($expectedExtensions as $id => $extension) {
52+
self::assertArrayHasKey($id, $actualExtensions);
53+
self::assertIsCallable($actualExtensions[$id]);
54+
}
55+
56+
self::assertSameSize($expectedExtensions, $actualExtensions);
57+
}
58+
}

0 commit comments

Comments
 (0)