You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
105 lines
3.7 KiB
105 lines
3.7 KiB
<?php |
|
namespace yiiunit\extensions\gii; |
|
|
|
use yii\gii\CodeFile; |
|
use yii\gii\generators\controller\Generator as ControllerGenerator; |
|
use yii\gii\generators\crud\Generator as CRUDGenerator; |
|
use yii\gii\generators\extension\Generator as ExtensionGenerator; |
|
use yii\gii\generators\form\Generator as FormGenerator; |
|
use yii\gii\generators\model\Generator as ModelGenerator; |
|
use yii\gii\generators\module\Generator as ModuleGenerator; |
|
|
|
/** |
|
* GeneratorsTest checks that Gii generators aren't throwing any errors during generation |
|
* @group gii |
|
*/ |
|
class GeneratorsTest extends GiiTestCase |
|
{ |
|
public function testControllerGenerator() |
|
{ |
|
$generator = new ControllerGenerator(); |
|
$generator->template = 'default'; |
|
$generator->controllerClass = 'app\runtime\TestController'; |
|
|
|
$valid = $generator->validate(); |
|
$this->assertTrue($valid, 'Validation failed: ' . print_r($generator->getErrors(), true)); |
|
|
|
$this->assertNotEmpty($generator->generate()); |
|
} |
|
|
|
public function testExtensionGenerator() |
|
{ |
|
$generator = new ExtensionGenerator(); |
|
$generator->template = 'default'; |
|
$generator->vendorName = 'samdark'; |
|
$generator->namespace = 'samdark\\'; |
|
$generator->license = 'BSD'; |
|
$generator->title = 'Sample extension'; |
|
$generator->description = 'This is sample description.'; |
|
$generator->authorName = 'Alexander Makarov'; |
|
$generator->authorEmail = 'sam@rmcreative.ru'; |
|
|
|
$valid = $generator->validate(); |
|
$this->assertTrue($valid, 'Validation failed: ' . print_r($generator->getErrors(), true)); |
|
|
|
$this->assertNotEmpty($generator->generate()); |
|
} |
|
|
|
public function testModelGenerator() |
|
{ |
|
$generator = new ModelGenerator(); |
|
$generator->template = 'default'; |
|
$generator->tableName = 'profile'; |
|
$generator->modelClass = 'Profile'; |
|
|
|
$valid = $generator->validate(); |
|
$this->assertTrue($valid, 'Validation failed: ' . print_r($generator->getErrors(), true)); |
|
|
|
$files = $generator->generate(); |
|
$modelCode = $files[0]->content; |
|
|
|
$this->assertTrue(strpos($modelCode, "'id' => 'ID'") !== false, "ID label should be there:\n" . $modelCode); |
|
$this->assertTrue(strpos($modelCode, "'description' => 'Description',") !== false, "Description label should be there:\n" . $modelCode); |
|
} |
|
|
|
public function testModuleGenerator() |
|
{ |
|
$generator = new ModuleGenerator(); |
|
$generator->template = 'default'; |
|
$generator->moduleID = 'test'; |
|
$generator->moduleClass = 'app\modules\test\Module'; |
|
|
|
$valid = $generator->validate(); |
|
$this->assertTrue($valid, 'Validation failed: ' . print_r($generator->getErrors(), true)); |
|
|
|
$this->assertNotEmpty($generator->generate()); |
|
} |
|
|
|
|
|
public function testFormGenerator() |
|
{ |
|
$generator = new FormGenerator(); |
|
$generator->template = 'default'; |
|
$generator->modelClass = 'yiiunit\extensions\gii\Profile'; |
|
$generator->viewName = 'profile'; |
|
$generator->viewPath = '@yiiunit/runtime'; |
|
|
|
$valid = $generator->validate(); |
|
$this->assertTrue($valid, 'Validation failed: ' . print_r($generator->getErrors(), true)); |
|
|
|
$this->assertNotEmpty($generator->generate()); |
|
} |
|
|
|
public function testCRUDGenerator() |
|
{ |
|
$generator = new CRUDGenerator(); |
|
$generator->template = 'default'; |
|
$generator->modelClass = 'yiiunit\extensions\gii\Profile'; |
|
$generator->controllerClass = 'app\TestController'; |
|
|
|
$valid = $generator->validate(); |
|
$this->assertTrue($valid, 'Validation failed: ' . print_r($generator->getErrors(), true)); |
|
|
|
$this->assertNotEmpty($generator->generate()); |
|
} |
|
}
|
|
|