diff --git a/database/factories/TaskSchedulerFactory.php b/database/factories/TaskSchedulerFactory.php new file mode 100644 index 000000000..7ee6918c9 --- /dev/null +++ b/database/factories/TaskSchedulerFactory.php @@ -0,0 +1,27 @@ +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() + ]; +}); diff --git a/tests/unit/workflow/engine/src/ProcessMaker/BusinessModel/TaskSchedulerBMTest.php b/tests/unit/workflow/engine/src/ProcessMaker/BusinessModel/TaskSchedulerBMTest.php new file mode 100644 index 000000000..92d712e91 --- /dev/null +++ b/tests/unit/workflow/engine/src/ProcessMaker/BusinessModel/TaskSchedulerBMTest.php @@ -0,0 +1,98 @@ +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); + } +}