Skip to content

Commit 0e83b40

Browse files
committed
Unit Test
1 parent 9704b17 commit 0e83b40

File tree

3 files changed

+37
-8
lines changed

3 files changed

+37
-8
lines changed

.phpunit.result.cache

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
C:37:"PHPUnit\Runner\DefaultTestResultCache":650:{a:2:{s:7:"defects";a:5:{s:7:"Warning";i:6;s:47:"Tests\Unit\RouterTest::test_it_register_a_route";i:3;s:62:"Tests\Unit\RouterTest::testThereAreNoRoutesWhenRouterIsCreated";i:4;s:45:"Tests\Unit\RouterTest::testItRegisterGetRoute";i:4;s:46:"Tests\Unit\RouterTest::testItRegisterPostRoute";i:4;}s:5:"times";a:6:{s:7:"Warning";d:0.004;s:47:"Tests\Unit\RouterTest::test_it_register_a_route";d:0.009;s:42:"Tests\Unit\RouterTest::testItRegisterRoute";d:0.004;s:45:"Tests\Unit\RouterTest::testItRegisterGetRoute";d:0.039;s:46:"Tests\Unit\RouterTest::testItRegisterPostRoute";d:0;s:62:"Tests\Unit\RouterTest::testThereAreNoRoutesWhenRouterIsCreated";d:0.011;}}}
1+
C:37:"PHPUnit\Runner\DefaultTestResultCache":995:{a:2:{s:7:"defects";a:5:{s:7:"Warning";i:6;s:47:"Tests\Unit\RouterTest::test_it_register_a_route";i:3;s:62:"Tests\Unit\RouterTest::testThereAreNoRoutesWhenRouterIsCreated";i:4;s:45:"Tests\Unit\RouterTest::testItRegisterGetRoute";i:4;s:46:"Tests\Unit\RouterTest::testItRegisterPostRoute";i:4;}s:5:"times";a:10:{s:7:"Warning";d:0.004;s:47:"Tests\Unit\RouterTest::test_it_register_a_route";d:0.009;s:42:"Tests\Unit\RouterTest::testItRegisterRoute";d:0.004;s:45:"Tests\Unit\RouterTest::testItRegisterGetRoute";d:0.005;s:46:"Tests\Unit\RouterTest::testItRegisterPostRoute";d:0;s:62:"Tests\Unit\RouterTest::testThereAreNoRoutesWhenRouterIsCreated";d:0;s:74:"Tests\Unit\RouterTest::testItThrowsRouteNotFoundException with data set #0";d:0.026;s:74:"Tests\Unit\RouterTest::testItThrowsRouteNotFoundException with data set #1";d:0;s:74:"Tests\Unit\RouterTest::testItThrowsRouteNotFoundException with data set #2";d:0;s:74:"Tests\Unit\RouterTest::testItThrowsRouteNotFoundException with data set #3";d:0;}}}

src/App/Router.php

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@ public function post(string $route, callable|array $action):self
2121
$this->register('post',$route,$action);
2222
return $this;
2323
}
24-
2524
public function routes(): array
2625
{
2726
return $this->routes;

tests/Unit/RouterTest.php

Lines changed: 36 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,18 +2,30 @@
22

33
namespace Tests\Unit;
44

5+
use App\Exception\RouteNotFoundException;
56
use App\Router;
67
use PHPUnit\Framework\TestCase;
78

89
class RouterTest extends TestCase
910
{
1011
private Router $router;
11-
protected function setUp(): void
12+
13+
public function routeNotFoundCases(): array
14+
{
15+
return[
16+
['/users','put'],
17+
['/invoices','post'],
18+
['/users','get'],
19+
['/users','post']
20+
];
21+
}
22+
23+
protected function setUp(): void
1224
{
1325
parent::setUp();
1426
$this->router= new Router();
1527
}
16-
public function testItRegisterGetRoute():void
28+
public function testItRegisterGetRoute():void
1729
{
1830
$this->router->get('/users', ['Users' , 'index']);
1931
$expected=[
@@ -24,9 +36,8 @@ public function testItRegisterGetRoute():void
2436
$this->assertEquals($expected, $this->router->routes());
2537

2638
}
27-
28-
public function testItRegisterPostRoute():void
29-
{//
39+
public function testItRegisterPostRoute():void
40+
{
3041
$this->router->post('/users', ['Users' , 'store']);
3142
$expected=[
3243
'post'=> [
@@ -38,7 +49,26 @@ public function testItRegisterPostRoute():void
3849
}
3950
public function testThereAreNoRoutesWhenRouterIsCreated()
4051
{
41-
$this->assertEmpty($this->router->routes());
52+
$this->assertEmpty((new Router())->routes());
4253
}
4354

55+
/**
56+
* @test
57+
* @dataProvider routeNotFoundCases
58+
*/
59+
public function testItThrowsRouteNotFoundException(
60+
string $requestUri,
61+
string $requestMethod
62+
):void
63+
{
64+
$users= new class(){
65+
public function delete():bool{
66+
return true;
67+
}
68+
};
69+
$this->router->post('/users',[$users::class,'store']);
70+
$this->router->get('/users',['Users','index']);
71+
$this->expectException(RouteNotFoundException::class);
72+
$this->router->resolve($requestUri,$requestMethod);
73+
}
4474
}

0 commit comments

Comments
 (0)