Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

CakeFixtureManager::load now calls CakeTestFixture::truncate

  • Loading branch information...
commit f0036b3ebcbba83a1ad7803ecbd6050869922681 1 parent 7cd370e
@young-steveo young-steveo authored
View
103 lib/Cake/Test/Case/TestSuite/Fixture/CakeFixtureManagerTest.php
@@ -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);
+ }
+}
View
1  lib/Cake/TestSuite/Fixture/CakeFixtureManager.php
@@ -209,6 +209,7 @@ public function load(CakeTestCase $test) {
$db = ConnectionManager::getDataSource($fixture->useDbConfig);
$db->begin();
$this->_setupTable($fixture, $db, $test->dropTables);
+ $fixture->truncate($db);
$fixture->insert($db);
$db->commit();
}
Please sign in to comment.
Something went wrong with that request. Please try again.