Skip to content

Commit 1364861

Browse files
author
igor-chepurnoi
committed
added tests for Route Model
1 parent 8795578 commit 1364861

File tree

6 files changed

+53
-8
lines changed

6 files changed

+53
-8
lines changed

controllers/RouteController.php

+4-4
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ public function actionIndex()
5959
{
6060
$model = Yii::createObject($this->modelClass);
6161

62-
return $this->render('index', ['routes' => $model->getRoutes()]);
62+
return $this->render('index', ['routes' => $model->getAvailableAndAssignedRoutes()]);
6363
}
6464

6565
/**
@@ -73,7 +73,7 @@ public function actionAssign(): array
7373
$model = Yii::createObject($this->modelClass);
7474
$model->addNew($routes);
7575

76-
return $model->getRoutes();
76+
return $model->getAvailableAndAssignedRoutes();
7777
}
7878

7979
/**
@@ -87,7 +87,7 @@ public function actionRemove(): array
8787
$model = Yii::createObject($this->modelClass);
8888
$model->remove($routes);
8989

90-
return $model->getRoutes();
90+
return $model->getAvailableAndAssignedRoutes();
9191
}
9292

9393
/**
@@ -100,6 +100,6 @@ public function actionRefresh(): array
100100
$model = Yii::createObject($this->modelClass);
101101
$model->invalidate();
102102

103-
return $model->getRoutes();
103+
return $model->getAvailableAndAssignedRoutes();
104104
}
105105
}

models/RouteModel.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,7 @@ public function remove(array $routes): bool
9595
*
9696
* @return array
9797
*/
98-
public function getRoutes(): array
98+
public function getAvailableAndAssignedRoutes(): array
9999
{
100100
$routes = $this->getAppRoutes();
101101
$exists = [];

tests/TestCase.php

+6-1
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,11 @@ protected function mockApplication($config = [], $appClass = '\yii\web\Applicati
4343
'id' => 'testapp',
4444
'basePath' => __DIR__,
4545
'vendorPath' => $this->getVendorPath(),
46+
'modules' => [
47+
'rbac' => [
48+
'class' => 'yii2mod\rbac\Module',
49+
],
50+
],
4651
'components' => [
4752
'db' => [
4853
'class' => 'yii\db\Connection',
@@ -145,7 +150,7 @@ protected function setupTestDbData()
145150
'username' => 'demo',
146151
'auth_key' => Yii::$app->getSecurity()->generateRandomString(),
147152
'password_hash' => Yii::$app->getSecurity()->generatePasswordHash('password'),
148-
'email' => 'demo@mail.com',
153+
'email' => 'demo@example.com',
149154
])->execute();
150155
}
151156
}

tests/bootstrap.php

+2
Original file line numberDiff line numberDiff line change
@@ -11,3 +11,5 @@
1111

1212
require_once(__DIR__ . '/../vendor/autoload.php');
1313
require_once(__DIR__ . '/../vendor/yiisoft/yii2/Yii.php');
14+
15+
Yii::setAlias('@yii2mod/rbac', dirname(__DIR__));

tests/models/AssignmentTest.php

-2
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,6 @@ public function testRevokePermission(AssignmentModel $model)
9191
/**
9292
* Create role for testing purposes
9393
*
94-
*
9594
* @throws Exception
9695
*/
9796
private function createRole()
@@ -108,7 +107,6 @@ private function createRole()
108107
/**
109108
* Create permission for testing purposes
110109
*
111-
*
112110
* @throws Exception
113111
*/
114112
private function createPermission()

tests/models/RouteTest.php

+40
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
<?php
2+
3+
namespace yii2mod\rbac\tests\models;
4+
5+
use yii2mod\rbac\models\RouteModel;
6+
use yii2mod\rbac\tests\TestCase;
7+
8+
/**
9+
* Class RouteTest
10+
*
11+
* @package yii2mod\rbac\tests\models
12+
*/
13+
class RouteTest extends TestCase
14+
{
15+
public function testGetAppRoutes()
16+
{
17+
$model = new RouteModel();
18+
$routes = $model->getAppRoutes();
19+
20+
$this->assertCount(34, $routes);
21+
$this->assertContains('/rbac/assignment/index', $routes);
22+
$this->assertContains('/rbac/permission/index', $routes);
23+
$this->assertContains('/rbac/role/index', $routes);
24+
$this->assertContains('/rbac/route/index', $routes);
25+
$this->assertContains('/rbac/rule/index', $routes);
26+
$this->assertContains('/rbac/*', $routes);
27+
$this->assertContains('/*', $routes);
28+
}
29+
30+
public function testGetAvailableAndAssignedRoutes()
31+
{
32+
$model = new RouteModel();
33+
$routes = $model->getAvailableAndAssignedRoutes();
34+
35+
$this->assertArrayHasKey('available', $routes);
36+
$this->assertArrayHasKey('assigned', $routes);
37+
$this->assertCount(34, $routes['available']);
38+
$this->assertCount(0, $routes['assigned']);
39+
}
40+
}

0 commit comments

Comments
 (0)