diff --git a/src/Console/Command/Task/TestTask.php b/src/Console/Command/Task/TestTask.php index 66445f50cdd..9fb692f51c0 100644 --- a/src/Console/Command/Task/TestTask.php +++ b/src/Console/Command/Task/TestTask.php @@ -423,7 +423,8 @@ public function generateConstructor($type, $fullClassName) { $pre = $construct = $post = ''; if ($type === 'table') { $className = str_replace('Table', '', $className); - $construct = "TableRegistry::get('{$className}', ['className' => '{$fullClassName}']);\n"; + $pre = "\$config = TableRegistry::exists('{$className}') ? [] : ['className' => '{$fullClassName}'];\n"; + $construct = "TableRegistry::get('{$className}', \$config);\n"; } if ($type === 'behavior' || $type === 'entity') { $construct = "new {$className}();\n"; diff --git a/tests/TestCase/Console/Command/Task/TestTaskTest.php b/tests/TestCase/Console/Command/Task/TestTaskTest.php index 7ee2cd66706..79cd9fe22d2 100644 --- a/tests/TestCase/Console/Command/Task/TestTaskTest.php +++ b/tests/TestCase/Console/Command/Task/TestTaskTest.php @@ -338,7 +338,8 @@ public function testBakeModelTest() { $this->assertContains('class ArticlesTableTest extends TestCase', $result); $this->assertContains('function setUp()', $result); - $this->assertContains("\$this->Articles = TableRegistry::get('Articles', [", $result); + $this->assertContains("\$config = TableRegistry::exists('Articles') ?", $result); + $this->assertContains("\$this->Articles = TableRegistry::get('Articles', \$config", $result); $this->assertContains('function tearDown()', $result); $this->assertContains('unset($this->Articles)', $result); @@ -478,19 +479,23 @@ public function testBakeHelperTest() { */ public function testGenerateConstructor() { $result = $this->Task->generateConstructor('controller', 'PostsController'); - $expected = array('', '', ''); + $expected = ['', '', '']; $this->assertEquals($expected, $result); $result = $this->Task->generateConstructor('table', 'App\Model\\Table\PostsTable'); - $expected = array('', "TableRegistry::get('Posts', ['className' => 'App\Model\\Table\PostsTable']);\n", ''); + $expected = [ + "\$config = TableRegistry::exists('Posts') ? [] : ['className' => 'App\Model\\Table\PostsTable'];\n", + "TableRegistry::get('Posts', \$config);\n", + '' + ]; $this->assertEquals($expected, $result); $result = $this->Task->generateConstructor('helper', 'FormHelper'); - $expected = array("\$view = new View();\n", "new FormHelper(\$view);\n", ''); + $expected = ["\$view = new View();\n", "new FormHelper(\$view);\n", '']; $this->assertEquals($expected, $result); - $result = $this->Task->generateConstructor('entity', 'TestPlugin\Model\Entity\Article', null); - $expected = array("", "new Article();\n", ''); + $result = $this->Task->generateConstructor('entity', 'TestPlugin\Model\Entity\Article'); + $expected = ["", "new Article();\n", '']; $this->assertEquals($expected, $result); }