2013-12-07 14:47:06 +00:00
|
|
|
<?php
|
|
|
|
/**
|
|
|
|
* CakeFixtureManager file
|
|
|
|
*
|
2017-06-10 21:33:55 +00:00
|
|
|
* CakePHP(tm) : Rapid Development Framework (https://cakephp.org)
|
2017-06-10 22:10:52 +00:00
|
|
|
* Copyright (c) Cake Software Foundation, Inc. (https://cakefoundation.org)
|
2013-12-07 14:47:06 +00:00
|
|
|
*
|
|
|
|
* 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.
|
|
|
|
*
|
2017-06-10 22:10:52 +00:00
|
|
|
* @copyright Copyright (c) Cake Software Foundation, Inc. (https://cakefoundation.org)
|
2017-06-10 21:33:55 +00:00
|
|
|
* @link https://cakephp.org CakePHP Project
|
2013-12-07 14:47:06 +00:00
|
|
|
* @package Cake.Test.Case.TestSuite.Fixture
|
|
|
|
* @since CakePHP v 2.5
|
2017-06-10 22:23:14 +00:00
|
|
|
* @license https://opensource.org/licenses/mit-license.php MIT License
|
2013-12-07 14:47:06 +00:00
|
|
|
*/
|
|
|
|
|
|
|
|
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);
|
|
|
|
|
2013-12-07 17:10:03 +00:00
|
|
|
$loadedProperty = $fixtureManagerReflection->getProperty('_loaded');
|
|
|
|
$loadedProperty->setAccessible(true);
|
|
|
|
$loadedProperty->setValue($fixtureManager, array('core.uuid' => $MockFixture));
|
2013-12-07 14:47:06 +00:00
|
|
|
|
|
|
|
$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);
|
|
|
|
|
2013-12-07 17:10:03 +00:00
|
|
|
$fixtureMapProperty = $fixtureManagerReflection->getProperty('_fixtureMap');
|
|
|
|
$fixtureMapProperty->setAccessible(true);
|
|
|
|
$fixtureMapProperty->setValue($fixtureManager, array('UuidFixture' => $MockFixture));
|
2013-12-07 14:47:06 +00:00
|
|
|
|
|
|
|
$dboMethods = array_diff(get_class_methods('DboSource'), array('enabled'));
|
|
|
|
$dboMethods[] = 'connect';
|
|
|
|
$db = $this->getMock('DboSource', $dboMethods);
|
|
|
|
$db->config['prefix'] = '';
|
|
|
|
|
|
|
|
$fixtureManager->loadSingle('Uuid', $db, false);
|
|
|
|
}
|
|
|
|
}
|