Skip to content

Commit cf41970

Browse files
committed
Complete the test
1 parent 12d14a5 commit cf41970

File tree

8 files changed

+140
-9
lines changed

8 files changed

+140
-9
lines changed
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
<?php
2+
/**
3+
* OpenAPI UrlRules
4+
*
5+
* This file is auto generated.
6+
*/
7+
return [
8+
'GET ' => 'fruit/mango/alphonso/list',
9+
'' => 'fruit/mango/alphonso/options',
10+
];
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
<?php
2+
3+
namespace app\fruit;
4+
5+
class Module extends \yii\base\Module
6+
{
7+
8+
public function init()
9+
{
10+
parent::init();
11+
$this->modules = [
12+
'mango' => [
13+
'class' => \app\fruit\mango\Module::class,
14+
],
15+
];
16+
}
17+
18+
19+
}
20+
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
<?php
2+
3+
namespace app\fruit\mango;
4+
5+
class Module extends \yii\base\Module
6+
{
7+
8+
public function init()
9+
{
10+
parent::init();
11+
}
12+
13+
14+
}
15+
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
<?php
2+
3+
namespace app\fruit\mango\controllers;
4+
5+
class AlphonsoController extends \app\fruit\mango\controllers\base\AlphonsoController
6+
{
7+
8+
public function actions()
9+
{
10+
$actions = parent::actions();
11+
return $actions;
12+
}
13+
14+
public function checkAccess($action, $model = null, $params = [])
15+
{
16+
//TODO implement checkAccess
17+
}
18+
19+
20+
}
21+
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
<?php
2+
namespace app\fruit\mango\controllers\base;
3+
4+
use insolita\fractal\JsonApiController;
5+
use Yii;
6+
7+
abstract class AlphonsoController extends JsonApiController
8+
{
9+
public function actions()
10+
{
11+
return [
12+
'list' => [
13+
'class' => \insolita\fractal\actions\ListAction::class,
14+
'checkAccess' => [$this, 'checkAccess'],
15+
'transformer' => \app\transformers\TaskTransformer::class,
16+
'modelClass' => \app\models\Task::class,
17+
'resourceKey' => 'tasks',
18+
'dataFilter' => null,
19+
'prepareDataProvider' => null
20+
],
21+
'options' => [
22+
'class' => \yii\rest\OptionsAction::class,
23+
],
24+
];
25+
}
26+
27+
/**
28+
* Checks the privilege of the current user.
29+
*
30+
* This method checks whether the current user has the privilege
31+
* to run the specified action against the specified data model.
32+
* If the user does not have access, a [[ForbiddenHttpException]] should be thrown.
33+
*
34+
* @param string $action the ID of the action to be executed
35+
* @param object $model the model to be accessed. If null, it means no specific model is being accessed.
36+
* @param array $params additional parameters
37+
* @throws \yii\web\ForbiddenHttpException if the user does not have access
38+
*/
39+
abstract public function checkAccess($action, $model = null, $params = []);
40+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
<?php
2+
3+
namespace app\transformers;
4+
5+
class TaskTransformer extends \app\transformers\base\TaskTransformer
6+
{
7+
8+
9+
}
10+
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
<?php
2+
namespace app\transformers\base;
3+
4+
use League\Fractal\TransformerAbstract;
5+
use app\models\Task;
6+
7+
class TaskTransformer extends TransformerAbstract
8+
{
9+
protected array $availableIncludes = [];
10+
protected array $defaultIncludes = [];
11+
12+
public function transform(Task $model)
13+
{
14+
return $model->getAttributes();
15+
}
16+
}

tests/unit/issues/Issue102Test.php

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -4,22 +4,21 @@
44

55
use tests\DbTestCase;
66
use Yii;
7+
use yii\helpers\FileHelper;
78

89
class Issue102Test extends DbTestCase
910
{
1011
// https://github.com/php-openapi/yii2-openapi/issues/102
1112
public function test102FractalactionNotGeneratedForRootPath()
1213
{
1314
$testFile = Yii::getAlias("@specs/issue_fix/102_fractalaction_not_generated_for_root_path/index.php");
14-
1515
$this->runGenerator($testFile);
16-
// TODO
17-
// $actualFiles = FileHelper::findFiles(Yii::getAlias('@app'), [
18-
// 'recursive' => true,
19-
// ]);
20-
// $expectedFiles = FileHelper::findFiles(Yii::getAlias("@specs/issue_fix/102_fractalaction_not_generated_for_root_path/mysql"), [
21-
// 'recursive' => true,
22-
// ]);
23-
// $this->checkFiles($actualFiles, $expectedFiles);
16+
$actualFiles = FileHelper::findFiles(Yii::getAlias('@app'), [
17+
'recursive' => true,
18+
]);
19+
$expectedFiles = FileHelper::findFiles(Yii::getAlias("@specs/issue_fix/102_fractalaction_not_generated_for_root_path/mysql"), [
20+
'recursive' => true,
21+
]);
22+
$this->checkFiles($actualFiles, $expectedFiles);
2423
}
2524
}

0 commit comments

Comments
 (0)