RouteTest.php 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. <?php
  2. namespace Goodquestiondev\Tests;
  3. require_once __DIR__ . '/../vendor/autoload.php';
  4. use PHPUnit\Framework\TestCase;
  5. use Goodquestiondev\Route;
  6. class RouteTest extends TestCase
  7. {
  8. public function testRoute(): void
  9. {
  10. Route::resource('posts');
  11. Route::resource('users.posts');
  12. Route::resource('categories.posts');
  13. $route = Route::getInstance();
  14. $uriInfo = $route->getUriInfo('/users/bob/posts/999');
  15. $this->assertEquals('users/{user}/posts/{post}', $uriInfo['uri']);
  16. $this->assertEquals(['user' => 'bob', 'post' => '999'], $uriInfo['params']);
  17. $uriInfo = $route->getUriInfo('users/create');
  18. $this->assertEquals('users/create', $uriInfo['uri']);
  19. $this->assertEquals(['user' => ''], $uriInfo['params']);
  20. $uriInfo = $route->getUriInfo('posts/bob/edit');
  21. $this->assertEquals('posts/{post}/edit', $uriInfo['uri']);
  22. $this->assertEquals(['post' => 'bob'], $uriInfo['params']);
  23. $route = Route::getInstance();
  24. $this->assertEquals(3, count($route->resources));
  25. }
  26. }