Merge branch 'feature/PMCORE-1444' of https://bitbucket.org/colosa/processmaker into feature/PMCORE-1444

This commit is contained in:
Henry Jordan
2020-06-15 20:01:19 +00:00
2 changed files with 125 additions and 0 deletions

View File

@@ -0,0 +1,27 @@
<?php
/**
* Model factory for a task scheduler
*/
use Faker\Generator as Faker;
$factory->define(\ProcessMaker\Model\TaskScheduler::class, function (Faker $faker) {
return [
'id' => G::generateUniqueID(),
'title' => $faker->title,
'startingTime' => $faker->dateTime(),
'endingTime' => $faker->dateTime(),
'everyOn' => "",
'interval' => "",
'description' => "",
'expression' => "",
'body' => "",
'type' => "",
'category' => "emails_notifications", //emails_notifications, case_actions, plugins, processmaker_sync
'system' => "",
'timezone' => "",
'enable' => "",
'creation_date' => $faker->dateTime(),
'last_update' => $faker->dateTime()
];
});

View File

@@ -0,0 +1,98 @@
<?php
namespace ProcessMaker\BusinessModel;
use ProcessMaker\BusinessModel\TaskSchedulerBM;
use ProcessMaker\Model\TaskScheduler;
use Tests\TestCase;
class TaskSchedulerBMTest extends TestCase
{
/**
* Test getSchedule method
*
* @covers \ProcessMaker\BusinessModel\TaskSchedulerBM::getSchedule
* @test
*/
public function it_should_test_get_schedule_method()
{
TaskScheduler::truncate();
$obj = new TaskSchedulerBM();
$res = $obj->getSchedule('emails_notifications');
$this->assertNotEmpty($res);
factory(TaskScheduler::class)->create();
$res = $obj->getSchedule('emails_notifications');
$this->assertNotEmpty(1, $res);
$res = $obj->getSchedule('case_actions');
$this->assertEmpty(0, $res);
$res = $obj->getSchedule('plugins');
$this->assertEmpty(0, $res);
$res = $obj->getSchedule('processmaker_sync');
$this->assertEmpty(0, $res);
$res = $obj->getSchedule(null);
$this->assertNotEmpty(1, $res);
}
/**
* Test saveSchedule method
*
* @covers \ProcessMaker\BusinessModel\TaskSchedulerBM::saveSchedule
* @test
*/
public function it_should_test_save_schedule_method()
{
$obj = new TaskSchedulerBM();
$scheduler = factory(TaskScheduler::class)->create();
$request_data = [
"id" => $scheduler->id,
"title" => "ProcessMaker Events",
"enable" => "1",
"service" => "events",
"category" => "case_actions",
"file" => "workflow/engine/bin/cron.php",
"startingTime" => "0:00",
"endingTime" => "23:59",
"expression" => "* * * * *",
"description" => "Unpauses any case whose pause time has expired",
"timezone" => "",
"everyOn" => "",
'interval' => "",
'body' => "",
'type' => "",
'system' => "",
'creation_date' => date(''),
'last_update' => date('')
];
$res = $obj->saveSchedule($request_data);
$this->assertEquals([] ,$res);
}
/**
* Test generateInitialData method
*
* @covers \ProcessMaker\BusinessModel\TaskSchedulerBM::generateInitialData
* @test
*/
public function it_should_test_generate_initial_data_method()
{
TaskScheduler::truncate();
$r = TaskScheduler::all()->toArray();
$this->assertEmpty($r);
$obj = new TaskSchedulerBM();
$obj->generateInitialData();
$r = TaskScheduler::all()->toArray();
$this->assertNotEmpty($r);
}
}