diff options
author | Igor Scheller <igor.scheller@igorshp.de> | 2018-08-22 03:10:08 +0200 |
---|---|---|
committer | Igor Scheller <igor.scheller@igorshp.de> | 2018-08-22 03:10:08 +0200 |
commit | 73c9d923e7cc77847cfcbff4b90ad4815699a4fa (patch) | |
tree | 76000712338c18a37a433b365cd32a72de2b1805 /tests/Unit/Http | |
parent | b0e7bc0df2eb4975223582089c7a928903e8cd14 (diff) |
Renamed RoutingServiceProvider to Http\UrlGeneratorServiceProvider
Diffstat (limited to 'tests/Unit/Http')
-rw-r--r-- | tests/Unit/Http/UrlGeneratorServiceProviderTest.php | 29 | ||||
-rw-r--r-- | tests/Unit/Http/UrlGeneratorTest.php | 51 |
2 files changed, 80 insertions, 0 deletions
diff --git a/tests/Unit/Http/UrlGeneratorServiceProviderTest.php b/tests/Unit/Http/UrlGeneratorServiceProviderTest.php new file mode 100644 index 00000000..f3d5e018 --- /dev/null +++ b/tests/Unit/Http/UrlGeneratorServiceProviderTest.php @@ -0,0 +1,29 @@ +<?php + +namespace Engelsystem\Test\Unit\Routing; + +use Engelsystem\Http\UrlGenerator; +use Engelsystem\Http\UrlGeneratorServiceProvider; +use Engelsystem\Test\Unit\ServiceProviderTest; +use PHPUnit_Framework_MockObject_MockObject; + +class UrlGeneratorServiceProviderTest extends ServiceProviderTest +{ + /** + * @covers \Engelsystem\Http\UrlGeneratorServiceProvider::register() + */ + public function testRegister() + { + /** @var PHPUnit_Framework_MockObject_MockObject|UrlGenerator $urlGenerator */ + $urlGenerator = $this->getMockBuilder(UrlGenerator::class) + ->getMock(); + + $app = $this->getApp(); + + $this->setExpects($app, 'make', [UrlGenerator::class], $urlGenerator); + $this->setExpects($app, 'instance', ['http.urlGenerator', $urlGenerator]); + + $serviceProvider = new UrlGeneratorServiceProvider($app); + $serviceProvider->register(); + } +} diff --git a/tests/Unit/Http/UrlGeneratorTest.php b/tests/Unit/Http/UrlGeneratorTest.php new file mode 100644 index 00000000..89ffa7dd --- /dev/null +++ b/tests/Unit/Http/UrlGeneratorTest.php @@ -0,0 +1,51 @@ +<?php + +namespace Engelsystem\Test\Unit\Routing; + +use Engelsystem\Application; +use Engelsystem\Container\Container; +use Engelsystem\Http\Request; +use Engelsystem\Http\UrlGenerator; +use PHPUnit\Framework\TestCase; + +class UrlGeneratorTest extends TestCase +{ + public function provideLinksTo() + { + return [ + ['/foo/path', '/foo/path', 'http://foo.bar/foo/path', [], 'http://foo.bar/foo/path'], + ['foo', '/foo', 'https://foo.bar/foo', [], 'https://foo.bar/foo'], + ['foo', '/foo', 'http://f.b/foo', ['test' => 'abc', 'bla' => 'foo'], 'http://f.b/foo?test=abc&bla=foo'], + ]; + } + + /** + * @dataProvider provideLinksTo + * @covers \Engelsystem\Http\UrlGenerator::to + * + * @param string $path + * @param string $willReturn + * @param string $urlToPath + * @param string[] $arguments + * @param string $expectedUrl + */ + public function testTo($urlToPath, $path, $willReturn, $arguments, $expectedUrl) + { + $app = new Container(); + $urlGenerator = new UrlGenerator(); + Application::setInstance($app); + + $request = $this->getMockBuilder(Request::class) + ->getMock(); + + $request->expects($this->once()) + ->method('getUriForPath') + ->with($path) + ->willReturn($willReturn); + + $app->instance('request', $request); + + $url = $urlGenerator->to($urlToPath, $arguments); + $this->assertEquals($expectedUrl, $url); + } +} |