/
CakeFixtureManagerTest.php
103 lines (89 loc) · 2.8 KB
/
CakeFixtureManagerTest.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
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);
}
}