forked from NetCommons3/NetCommons
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathNetCommonsTestSuite.php
More file actions
89 lines (78 loc) · 1.86 KB
/
NetCommonsTestSuite.php
File metadata and controls
89 lines (78 loc) · 1.86 KB
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
<?php
/**
* NetCommonsTestSuite
*
* @author Shohei Nakajima <nakajimashouhei@gmail.com>
* @link http://www.netcommons.org NetCommons Project
* @license http://www.netcommons.org/license.txt NetCommons License
* @copyright Copyright 2014, NetCommons Project
*/
App::uses('ConnectionManager', 'Model');
/**
* NetCommonsTestSuite
*
* @author Shohei Nakajima <nakajimashouhei@gmail.com>
* @package NetCommons\NetCommons\TestSuite
* @codeCoverageIgnore
*/
class NetCommonsTestSuite extends CakeTestSuite {
/**
* Plugin name
*
* @var string
*/
public static $plugin;
/**
* テストDBの作成
*
* @return void
*/
public function creteTestDb() {
ini_set('memory_limit', '1024M');
$dbObject = ConnectionManager::enumConnectionObjects();
switch ($dbObject['test']['datasource']) {
case 'Database/Mysql':
$driver = 'mysql';
break;
//case 'Database/Postgres':
// $driver = 'pgsql';
// break;
}
$db = new PDO(
sprintf(
'%s:host=%s;port=%s',
$driver,
$dbObject['test']['host'],
Hash::get($dbObject['test'], 'port', '3306')
),
$dbObject['test']['login'],
$dbObject['test']['password']
);
$db->query(
sprintf(
'CREATE DATABASE IF NOT EXISTS `%s` /*!40100 DEFAULT CHARACTER SET %s */',
$dbObject['test']['database'],
Hash::get($dbObject['test'], 'encoding', 'utf8')
)
);
}
/**
* Recursively adds all the files in a directory to the test suite.
*
* @param string $directory The directory subtree to add tests from.
* @return void
*/
public function addTestDirectoryRecursive($directory = '.') {
$this->creteTestDb();
$Folder = new Folder($directory);
$files = $Folder->tree(null, true, 'files');
foreach ($files as $file) {
if (preg_match('/\/All([\w]+)Test\.php$/', $file)) {
continue;
}
if (substr($file, -8) === 'Test.php') {
$this->addTestFile($file);
}
}
}
}