not used to plugin testing - trying to get working but fixtures not working yet
This commit is contained in:
43
tests/schema.php
Normal file
43
tests/schema.php
Normal file
@@ -0,0 +1,43 @@
|
||||
<?php
|
||||
/**
|
||||
* Based entirely off of dereuromark's plugins as I was having trouble getting fixtures to load
|
||||
* after moving the plugins outside of an existing cakephp app's plugins folder
|
||||
*
|
||||
* @link https://github.com/dereuromark/cakephp-tools/blob/master/tests/schema.php
|
||||
*/
|
||||
use Cake\Utility\Inflector;
|
||||
|
||||
$tables = [];
|
||||
|
||||
/**
|
||||
* @var \DirectoryIterator<\DirectoryIterator> $iterator
|
||||
*/
|
||||
$iterator = new DirectoryIterator(__DIR__ . DS . 'Fixture');
|
||||
foreach ($iterator as $file) {
|
||||
if (!preg_match('/(\w+)Fixture.php$/', (string)$file, $matches)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
$name = $matches[1];
|
||||
$tableName = Inflector::underscore($name);
|
||||
$class = 'CakeProducts\\Test\\Fixture\\' . $name . 'Fixture';
|
||||
try {
|
||||
$object = (new ReflectionClass($class))->getProperty('fields');
|
||||
} catch (ReflectionException $e) {
|
||||
continue;
|
||||
}
|
||||
|
||||
$array = $object->getDefaultValue();
|
||||
$constraints = $array['_constraints'] ?? [];
|
||||
$indexes = $array['_indexes'] ?? [];
|
||||
unset($array['_constraints'], $array['_indexes'], $array['_options']);
|
||||
$table = [
|
||||
'table' => $tableName,
|
||||
'columns' => $array,
|
||||
'constraints' => $constraints,
|
||||
'indexes' => $indexes,
|
||||
];
|
||||
$tables[$tableName] = $table;
|
||||
}
|
||||
|
||||
return $tables;
|
||||
Reference in New Issue
Block a user