This commit is contained in:
Roly Rudy Gutierrez Pinto
2019-05-03 12:07:11 -04:00
parent 1b77bd12b9
commit 22383ec53b
3 changed files with 57 additions and 54 deletions

1
.gitignore vendored
View File

@@ -41,3 +41,4 @@ node_modules
test_shared/ test_shared/
**/cache/ **/cache/
storage/ storage/
phpunit.xml

View File

@@ -15,9 +15,9 @@
<directory>./tests/workflow/engine/src/</directory> <directory>./tests/workflow/engine/src/</directory>
</testsuite> </testsuite>
<testsuite name="Unit"> <testsuite name="Unit">
<directory suffix="Test.php">./tests/Unit</directory> <directory suffix="Test.php">./tests/Unit</directory>
</testsuite> </testsuite>
</testsuites> </testsuites>
<filter> <filter>
<whitelist addUncoveredFilesFromWhitelist="true" processUncoveredFilesFromWhitelist="false"> <whitelist addUncoveredFilesFromWhitelist="true" processUncoveredFilesFromWhitelist="false">
@@ -33,31 +33,32 @@
</filter> </filter>
<php> <php>
<var name="APP_ENV" value="testing" /> <!--Connection to database-->
<var name="SYS_SYS" value="test" /> <env name="DB_HOST" value="127.0.0.1" />
<var name="SYS_LANG" value="en" /> <env name="DB_DATABASE" value="test" />
<var name="SYS_SKIN" value="neoclassic" /> <env name="DB_USERNAME" value="root" />
<var name="DB_ADAPTER" value="mysql" /> <env name="DB_PASSWORD" value="password" />
<var name="DB_HOST" value="processmaker3" /> <!--Connection to database SQLServer-->
<var name="DB_NAME" value="wf_test" /> <env name="RUN_MSSQL_TESTS" value="false" />
<var name="DB_USER" value="root" /> <env name="MSSQL_HOST" value="172.16.3.1" />
<var name="DB_PASS" value="" /> <env name="MSSQL_PORT" value="1433" />
<var name="PATH_DB" value="./shared/sites/" /> <env name="MSSQL_DATABASE" value="testexternal" />
<var name="PATH_DATA" value="./shared/" /> <env name="MSSQL_USERNAME" value="test" />
<var name="APP_HOST" value="processmaker3.local" /> <env name="MSSQL_PASSWORD" value="test" />
<var name="HTTPS" value="off" /> <!--Php variables-->
<var name="SERVER_PORT" value="8080" /> <var name="APP_ENV" value="testing" />
<var name="SYS_SYS" value="test" />
<var name="SYS_LANG" value="en" />
<env name="DB_DATABASE" value="test" /> <var name="SYS_SKIN" value="neoclassic" />
<env name="DB_USERNAME" value="root" /> <var name="DB_ADAPTER" value="mysql" />
<env name="DB_PASSWORD" value="" /> <var name="DB_HOST" value="processmaker3" />
<var name="DB_NAME" value="wf_test" />
<env name="RUN_MSSQL_TESTS" value="true" /> <var name="DB_USER" value="root" />
<env name="MSSQL_HOST" value="172.16.3.1" /> <var name="DB_PASS" value="" />
<env name="MSSQL_PORT" value="1433" /> <var name="PATH_DB" value="./shared/sites/" />
<env name="MSSQL_DATABASE" value="testexternal" /> <var name="PATH_DATA" value="./shared/" />
<env name="MSSQL_USERNAME" value="test" /> <var name="APP_HOST" value="processmaker3.local" />
<env name="MSSQL_PASSWORD" value="test" /> <var name="HTTPS" value="off" />
<var name="SERVER_PORT" value="8080" />
</php> </php>
</phpunit> </phpunit>

View File

@@ -1,4 +1,5 @@
<?php <?php
/** /**
* Test harness bootstrap that sets up initial defines and builds up the initial database schema * Test harness bootstrap that sets up initial defines and builds up the initial database schema
*/ */
@@ -20,6 +21,7 @@ define('PATH_DB', 'shared/sites/');
define('PATH_DATA', 'shared/rbac/'); define('PATH_DATA', 'shared/rbac/');
define('PATH_SEP', '/'); define('PATH_SEP', '/');
define('PATH_METHODS', 'workflow/engine/methods/'); define('PATH_METHODS', 'workflow/engine/methods/');
define('SYS_LANG', 'en');
// Setup basic app services // Setup basic app services
$app = require __DIR__ . '/../bootstrap/app.php'; $app = require __DIR__ . '/../bootstrap/app.php';
@@ -27,17 +29,17 @@ $app->make(Kernel::class)->bootstrap();
// Setup our testexternal database // Setup our testexternal database
config(['database.connections.testexternal' => [ config(['database.connections.testexternal' => [
'driver' => 'mysql', 'driver' => 'mysql',
'host' => env('DB_HOST', '127.0.0.1'), 'host' => env('DB_HOST', '127.0.0.1'),
'database' => env('DB_TESTEXTERNAL_DB', 'testexternal'), 'database' => env('DB_DATABASE', 'testexternal'),
'username' => env('DB_USERNAME', 'root'), 'username' => env('DB_USERNAME', 'root'),
'password' => env('DB_PASSWORD', ''), 'password' => env('DB_PASSWORD', 'password'),
'unix_socket' => env('DB_SOCKET', ''), 'unix_socket' => env('DB_SOCKET', ''),
'charset' => 'utf8mb4', 'charset' => 'utf8mb4',
'collation' => 'utf8mb4_unicode_ci', 'collation' => 'utf8mb4_unicode_ci',
'prefix' => '', 'prefix' => '',
'strict' => true, 'strict' => true,
'engine' => null, 'engine' => null,
]]); ]]);
// Now, drop all test tables and repopulate with schema // Now, drop all test tables and repopulate with schema
@@ -52,13 +54,13 @@ DB::connection('testexternal')->table('test')->insert([
]); ]);
// Only do if we are supporting MSSql tests // Only do if we are supporting MSSql tests
if(env('RUN_MSSQL_TESTS')) { if (env('RUN_MSSQL_TESTS')) {
config(['database.connections.mssql' => [ config(['database.connections.mssql' => [
'driver' => 'sqlsrv', 'driver' => 'sqlsrv',
'host' => env('MSSQL_HOST', '127.0.0.1'), 'host' => env('MSSQL_HOST', '127.0.0.1'),
'database' => env('MSSQL_DATABASE', 'testexternal'), 'database' => env('MSSQL_DATABASE', 'testexternal'),
'username' => env('MSSQL_USERNAME', 'root'), 'username' => env('MSSQL_USERNAME', 'root'),
'password' => env('MSSQL_PASSWORD', ''), 'password' => env('MSSQL_PASSWORD', 'password'),
]]); ]]);
Schema::connection('mssql')->dropIfExists('test'); Schema::connection('mssql')->dropIfExists('test');
@@ -73,26 +75,25 @@ if(env('RUN_MSSQL_TESTS')) {
// THIS IS FOR STANDARD PROCESSMAKER TABLES // THIS IS FOR STANDARD PROCESSMAKER TABLES
// Now, drop all test tables and repopulate with schema // Now, drop all test tables and repopulate with schema
DB::unprepared('SET FOREIGN_KEY_CHECKS = 0'); DB::unprepared('SET FOREIGN_KEY_CHECKS = 0');
$colname = 'Tables_in_' . env('DB_DATABASE'); $colname = 'Tables_in_' . env('DB_DATABASE');
$tables = DB::select('SHOW TABLES'); $tables = DB::select('SHOW TABLES');
$drop = []; $drop = [];
foreach($tables as $table) { foreach ($tables as $table) {
$drop[] = $table->$colname; $drop[] = $table->$colname;
} }
if(count($drop)) { if (count($drop)) {
$drop = implode(',', $drop); $drop = implode(',', $drop);
DB::statement("DROP TABLE $drop"); DB::statement("DROP TABLE $drop");
DB::unprepared('SET FOREIGN_KEY_CHECKS = 1'); DB::unprepared('SET FOREIGN_KEY_CHECKS = 1');
} }
// Repopulate with schema and standard inserts // Repopulate with schema and standard inserts
DB::unprepared(file_get_contents(PATH_CORE.'data/mysql/schema.sql')); DB::unprepared(file_get_contents(PATH_CORE . 'data/mysql/schema.sql'));
DB::unprepared(file_get_contents(PATH_RBAC_CORE.'data/mysql/schema.sql')); DB::unprepared(file_get_contents(PATH_RBAC_CORE . 'data/mysql/schema.sql'));
DB::unprepared(file_get_contents(PATH_CORE.'data/mysql/insert.sql')); DB::unprepared(file_get_contents(PATH_CORE . 'data/mysql/insert.sql'));
DB::unprepared(file_get_contents(PATH_RBAC_CORE.'data/mysql/insert.sql')); DB::unprepared(file_get_contents(PATH_RBAC_CORE . 'data/mysql/insert.sql'));
// Set our APP_SEQUENCE val // Set our APP_SEQUENCE val
DB::table('APP_SEQUENCE')->insert([ DB::table('APP_SEQUENCE')->insert([
@@ -106,7 +107,7 @@ DB::table('OAUTH_CLIENTS')->insert([
'CLIENT_NAME' => 'PM Web Designer', 'CLIENT_NAME' => 'PM Web Designer',
'CLIENT_DESCRIPTION' => 'ProcessMaker Web Designer App', 'CLIENT_DESCRIPTION' => 'ProcessMaker Web Designer App',
'CLIENT_WEBSITE' => 'www.processmaker.com', 'CLIENT_WEBSITE' => 'www.processmaker.com',
'REDIRECT_URI' => config('app.url') . '/sys' . config('system.workspace').'/en/neoclassic/oauth2/grant', 'REDIRECT_URI' => config('app.url') . '/sys' . config('system.workspace') . '/en/neoclassic/oauth2/grant',
'USR_UID' => '00000000000000000000000000000001' 'USR_UID' => '00000000000000000000000000000001'
]); ]);
DB::table('OAUTH_ACCESS_TOKENS')->insert([ DB::table('OAUTH_ACCESS_TOKENS')->insert([