From 458b9a7cbda1da1e70c1d83f0a9f3c400cf13d85 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julio=20Cesar=20Laura=20Avenda=C3=B1o?= Date: Fri, 24 May 2019 12:45:10 -0400 Subject: [PATCH] PMC-604 --- database/factories/DelegationFactory.php | 42 ++++++++++++++++++- .../src/ProcessMaker/Model/DelegationTest.php | 15 ++----- 2 files changed, 44 insertions(+), 13 deletions(-) diff --git a/database/factories/DelegationFactory.php b/database/factories/DelegationFactory.php index e5917a414..aa43fa7d6 100644 --- a/database/factories/DelegationFactory.php +++ b/database/factories/DelegationFactory.php @@ -1,6 +1,5 @@ define(\ProcessMaker\Model\Delegation::class, function(Faker $faker) { $app = factory(\ProcessMaker\Model\Application::class)->create(); @@ -14,6 +13,8 @@ $factory->define(\ProcessMaker\Model\Delegation::class, function(Faker $faker) { } else{ $user = $users->random(); } + + // Return with default values return [ 'APP_UID' => $app->APP_UID, 'DEL_INDEX' => 1, @@ -35,4 +36,41 @@ $factory->define(\ProcessMaker\Model\Delegation::class, function(Faker $faker) { 'TAS_ID' => $task->TAS_ID, 'DEL_DATA' => '' ]; -}); \ No newline at end of file +}); + +// Create a open delegation +$factory->state(\ProcessMaker\Model\Delegation::class, 'open', function (Faker $faker) { + // Create dates with sense + $delegateDate = $faker->dateTime(); + $initDate = $faker->dateTimeInInterval($delegateDate, '+30 minutes'); + $riskDate = $faker->dateTimeInInterval($initDate, '+1 day'); + $taskDueDate = $faker->dateTimeInInterval($riskDate, '+1 day'); + + return [ + 'DEL_THREAD_STATUS' => 'OPEN', + 'DEL_DELEGATE_DATE' => $delegateDate, + 'DEL_INIT_DATE' => $initDate, + 'DEL_RISK_DATE' => $riskDate, + 'DEL_TASK_DUE_DATE' => $taskDueDate, + 'DEL_FINISH_DATE' => null + ]; +}); + +// Create a closed delegation +$factory->state(\ProcessMaker\Model\Delegation::class, 'closed', function (Faker $faker) { + // Create dates with sense + $delegateDate = $faker->dateTime(); + $initDate = $faker->dateTimeInInterval($delegateDate, '+30 minutes'); + $riskDate = $faker->dateTimeInInterval($initDate, '+1 day'); + $taskDueDate = $faker->dateTimeInInterval($riskDate, '+1 day'); + $finishDate = $faker->dateTimeInInterval($initDate, '+10 days'); + + return [ + 'DEL_THREAD_STATUS' => 'CLOSED', + 'DEL_DELEGATE_DATE' => $delegateDate, + 'DEL_INIT_DATE' => $initDate, + 'DEL_RISK_DATE' => $riskDate, + 'DEL_TASK_DUE_DATE' => $taskDueDate, + 'DEL_FINISH_DATE' => $finishDate + ]; +}); diff --git a/tests/unit/workflow/engine/src/ProcessMaker/Model/DelegationTest.php b/tests/unit/workflow/engine/src/ProcessMaker/Model/DelegationTest.php index f183faa3d..232ab57f2 100644 --- a/tests/unit/workflow/engine/src/ProcessMaker/Model/DelegationTest.php +++ b/tests/unit/workflow/engine/src/ProcessMaker/Model/DelegationTest.php @@ -1052,25 +1052,18 @@ class DelegationTest extends TestCase */ public function it_should_return_participation_info() { - // Initializing Faker instance - $faker = Faker\Factory::create(); - // Creating one application with two delegations factory(User::class, 100)->create(); $process = factory(Process::class)->create(); $application = factory(Application::class)->create([ 'APP_UID' => G::generateUniqueID() ]); - factory(Delegation::class)->create([ - 'APP_UID' => $application->APP_UID, - 'DEL_THREAD_STATUS' => 'CLOSED', - 'DEL_FINISH_DATE' => $faker->dateTime() + factory(Delegation::class)->states('closed')->create([ + 'APP_UID' => $application->APP_UID ]); - factory(Delegation::class)->create([ + factory(Delegation::class)->states('open')->create([ 'APP_UID' => $application->APP_UID, - 'DEL_INDEX' => 2, - 'DEL_THREAD_STATUS' => 'CLOSED', - 'DEL_FINISH_DATE' => $faker->dateTime() + 'DEL_INDEX' => 2 ]); // Check the information returned