diff options
author | Igor Scheller <igor.scheller@igorshp.de> | 2017-09-19 23:55:40 +0200 |
---|---|---|
committer | Igor Scheller <igor.scheller@igorshp.de> | 2017-09-19 23:55:40 +0200 |
commit | b8d9ab0acb9c23419e6026d13e9b7dd305f5c919 (patch) | |
tree | 46d49d1d489bac54b9234bcf696e68b9cfb55d1b /tests/Unit | |
parent | 1e267ce3b133299f82661a37d82c0f50e8575e1e (diff) |
Added UrlGenerator unit test
Diffstat (limited to 'tests/Unit')
-rw-r--r-- | tests/Unit/Routing/UrlGeneratorTest.php | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/tests/Unit/Routing/UrlGeneratorTest.php b/tests/Unit/Routing/UrlGeneratorTest.php new file mode 100644 index 00000000..5b53a04e --- /dev/null +++ b/tests/Unit/Routing/UrlGeneratorTest.php @@ -0,0 +1,50 @@ +<?php + +namespace Engelsystem\Test\Config; + +use Engelsystem\Application; +use Engelsystem\Container\Container; +use Engelsystem\Http\Request; +use Engelsystem\Routing\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\Routing\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(); + 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); + } +} |