mirror of
https://github.com/kamilwylegala/cakephp2-php8.git
synced 2025-03-18 23:49:55 +00:00
Merge pull request #2445 from young-steveo/2.5
CakeFixtureManager::load now calls CakeTestFixture::truncate
This commit is contained in:
commit
a2f043d2a3
2 changed files with 104 additions and 0 deletions
103
lib/Cake/Test/Case/TestSuite/Fixture/CakeFixtureManagerTest.php
Normal file
103
lib/Cake/Test/Case/TestSuite/Fixture/CakeFixtureManagerTest.php
Normal file
|
@ -0,0 +1,103 @@
|
||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* CakeFixtureManager file
|
||||||
|
*
|
||||||
|
* CakePHP(tm) : Rapid Development Framework (http://cakephp.org)
|
||||||
|
* Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org)
|
||||||
|
*
|
||||||
|
* Licensed under The MIT License
|
||||||
|
* For full copyright and license information, please see the LICENSE.txt
|
||||||
|
* Redistributions of files must retain the above copyright notice.
|
||||||
|
*
|
||||||
|
* @copyright Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org)
|
||||||
|
* @link http://cakephp.org CakePHP Project
|
||||||
|
* @package Cake.Test.Case.TestSuite.Fixture
|
||||||
|
* @since CakePHP v 2.5
|
||||||
|
* @license http://www.opensource.org/licenses/mit-license.php MIT License
|
||||||
|
*/
|
||||||
|
|
||||||
|
App::uses('DboSource', 'Model/Datasource');
|
||||||
|
App::uses('CakeFixtureManager', 'TestSuite/Fixture');
|
||||||
|
App::uses('UuidFixture', 'Test/Fixture');
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Test Case for CakeFixtureManager class
|
||||||
|
*
|
||||||
|
* @package Cake.Test.Case.TestSuite
|
||||||
|
*/
|
||||||
|
class CakeFixtureManagerTest extends CakeTestCase {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* reset environment.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function setUp() {
|
||||||
|
parent::setUp();
|
||||||
|
$this->fixtureManager = new CakeFixtureManager();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* tearDown
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function tearDown() {
|
||||||
|
parent::tearDown();
|
||||||
|
unset($this->fixtureManager);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* testLoadTruncatesTable
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function testLoadTruncatesTable() {
|
||||||
|
$MockFixture = $this->getMock('UuidFixture', array('truncate'));
|
||||||
|
$MockFixture
|
||||||
|
->expects($this->once())
|
||||||
|
->method('truncate')
|
||||||
|
->will($this->returnValue(true));
|
||||||
|
|
||||||
|
$fixtureManager = $this->fixtureManager;
|
||||||
|
$fixtureManagerReflection = new ReflectionClass($fixtureManager);
|
||||||
|
|
||||||
|
$loadedProperty = $fixtureManagerReflection->getProperty('_loaded');
|
||||||
|
$loadedProperty->setAccessible(true);
|
||||||
|
$loadedProperty->setValue($fixtureManager, array('core.uuid' => $MockFixture));
|
||||||
|
|
||||||
|
$TestCase = $this->getMock('CakeTestCase');
|
||||||
|
$TestCase->fixtures = array('core.uuid');
|
||||||
|
$TestCase->autoFixtures = true;
|
||||||
|
$TestCase->dropTables = false;
|
||||||
|
|
||||||
|
$fixtureManager->load($TestCase);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* testLoadSingleTruncatesTable
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function testLoadSingleTruncatesTable() {
|
||||||
|
$MockFixture = $this->getMock('UuidFixture', array('truncate'));
|
||||||
|
$MockFixture
|
||||||
|
->expects($this->once())
|
||||||
|
->method('truncate')
|
||||||
|
->will($this->returnValue(true));
|
||||||
|
|
||||||
|
$fixtureManager = $this->fixtureManager;
|
||||||
|
$fixtureManagerReflection = new ReflectionClass($fixtureManager);
|
||||||
|
|
||||||
|
$fixtureMapProperty = $fixtureManagerReflection->getProperty('_fixtureMap');
|
||||||
|
$fixtureMapProperty->setAccessible(true);
|
||||||
|
$fixtureMapProperty->setValue($fixtureManager, array('UuidFixture' => $MockFixture));
|
||||||
|
|
||||||
|
$dboMethods = array_diff(get_class_methods('DboSource'), array('enabled'));
|
||||||
|
$dboMethods[] = 'connect';
|
||||||
|
$db = $this->getMock('DboSource', $dboMethods);
|
||||||
|
$db->config['prefix'] = '';
|
||||||
|
|
||||||
|
$fixtureManager->loadSingle('Uuid', $db, false);
|
||||||
|
}
|
||||||
|
}
|
|
@ -209,6 +209,7 @@ class CakeFixtureManager {
|
||||||
$db = ConnectionManager::getDataSource($fixture->useDbConfig);
|
$db = ConnectionManager::getDataSource($fixture->useDbConfig);
|
||||||
$db->begin();
|
$db->begin();
|
||||||
$this->_setupTable($fixture, $db, $test->dropTables);
|
$this->_setupTable($fixture, $db, $test->dropTables);
|
||||||
|
$fixture->truncate($db);
|
||||||
$fixture->insert($db);
|
$fixture->insert($db);
|
||||||
$db->commit();
|
$db->commit();
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue