mirror of
https://github.com/kamilwylegala/cakephp2-php8.git
synced 2024-11-15 03:18:26 +00:00
CakeFixtureManager::load now calls CakeTestFixture::truncate
This commit is contained in:
parent
7cd370e745
commit
f0036b3ebc
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->begin();
|
||||
$this->_setupTable($fixture, $db, $test->dropTables);
|
||||
$fixture->truncate($db);
|
||||
$fixture->insert($db);
|
||||
$db->commit();
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue