From 6ca82a41628747bd8cf17a6b74a005dc402f7373 Mon Sep 17 00:00:00 2001 From: Paula Quispe Date: Tue, 3 Sep 2019 16:06:15 -0400 Subject: [PATCH] PMC-1162 --- database/factories/ApplicationFactory.php | 44 +- database/factories/DelegationFactory.php | 49 +- database/factories/ListUnassignedFactory.php | 10 +- database/factories/TaskFactory.php | 36 +- .../src/ProcessMaker/Model/DelegationTest.php | 1009 ++++++----------- 5 files changed, 431 insertions(+), 717 deletions(-) diff --git a/database/factories/ApplicationFactory.php b/database/factories/ApplicationFactory.php index 76728224a..1d73ac635 100644 --- a/database/factories/ApplicationFactory.php +++ b/database/factories/ApplicationFactory.php @@ -1,26 +1,54 @@ define(\ProcessMaker\Model\Application::class, function(Faker $faker) { - $process = \ProcessMaker\Model\Process::all()->random(); $statuses = ['DRAFT', 'TO_DO']; $status = $faker->randomElement($statuses); $statusId = array_search($status, $statuses) + 1; + $appNumber = $faker->unique()->numberBetween(1000); return [ 'APP_UID' => G::generateUniqueID(), - 'APP_TITLE' => G::generateUniqueID(), - 'APP_NUMBER' => $faker->unique()->numberBetween(1000), + 'APP_TITLE' => $faker->sentence(3), + 'APP_NUMBER' => $appNumber, 'APP_STATUS' => $status, 'APP_STATUS_ID' => $statusId, - 'PRO_UID' => $process->PRO_UID, + 'PRO_UID' => G::generateUniqueID(), 'APP_PARALLEL' => 'N', - 'APP_INIT_USER' => \ProcessMaker\Model\User::all()->random()->USR_UID, - 'APP_CUR_USER' => \ProcessMaker\Model\User::all()->random()->USR_UID, + 'APP_INIT_USER' => G::generateUniqueID(), + 'APP_CUR_USER' => G::generateUniqueID(), 'APP_PIN' => G::generateUniqueID(), 'APP_CREATE_DATE' => $faker->dateTime(), 'APP_UPDATE_DATE' => $faker->dateTime(), 'APP_INIT_DATE' => $faker->dateTime(), - 'APP_DATA' => serialize(['APP_NUMBER' => 12]) + 'APP_DATA' => serialize(['APP_NUMBER' => $appNumber]) + ]; +}); + +// Create a delegation with the foreign keys +$factory->state(\ProcessMaker\Model\Application::class, 'foreign_keys', function (Faker $faker) { + // Create values in the foreign key relations + $process = factory(\ProcessMaker\Model\Process::class)->create(); + $user = factory(\ProcessMaker\Model\User::class)->create(); + // Get other random values + $statuses = ['DRAFT', 'TO_DO']; + $status = $faker->randomElement($statuses); + $statusId = array_search($status, $statuses) + 1; + $appNumber = $faker->unique()->numberBetween(1000); + return [ + 'APP_UID' => G::generateUniqueID(), + 'APP_TITLE' => $faker->sentence(3), + 'APP_NUMBER' => $appNumber, + 'APP_STATUS' => $status, + 'APP_STATUS_ID' => $statusId, + 'PRO_UID' => $process->PRO_UID, + 'APP_PARALLEL' => 'N', + 'APP_INIT_USER' => $user->USR_UID, + 'APP_CUR_USER' => $user->USR_UID, + 'APP_PIN' => G::generateUniqueID(), + 'APP_CREATE_DATE' => $faker->dateTime(), + 'APP_UPDATE_DATE' => $faker->dateTime(), + 'APP_INIT_DATE' => $faker->dateTime(), + 'APP_DATA' => serialize(['APP_NUMBER' => $appNumber]) ]; }); \ No newline at end of file diff --git a/database/factories/DelegationFactory.php b/database/factories/DelegationFactory.php index aa43fa7d6..8df29d74d 100644 --- a/database/factories/DelegationFactory.php +++ b/database/factories/DelegationFactory.php @@ -1,26 +1,47 @@ define(\ProcessMaker\Model\Delegation::class, function(Faker $faker) { - $app = factory(\ProcessMaker\Model\Application::class)->create(); - $process = \ProcessMaker\Model\Process::where('PRO_UID', $app->PRO_UID)->first(); - $task = $process->tasks->first(); + // Return with default values + return [ + 'APP_UID' => G::generateUniqueID(), + 'DEL_INDEX' => 1, + 'APP_NUMBER' => $faker->unique()->numberBetween(1, 100000), + 'DEL_PREVIOUS' => 0, + 'PRO_UID' => G::generateUniqueID(), + 'TAS_UID' => G::generateUniqueID(), + 'USR_UID' => G::generateUniqueID(), + 'DEL_TYPE' => 'NORMAL', + 'DEL_THREAD' => 1, + 'DEL_THREAD_STATUS' => 'OPEN', + 'DEL_PRIORITY' => 3, + 'DEL_DELEGATE_DATE' => $faker->dateTime(), + 'DEL_INIT_DATE' => $faker->dateTime(), + 'DEL_TASK_DUE_DATE' => $faker->dateTime(), + 'DEL_RISK_DATE' => $faker->dateTime(), + 'USR_ID' => 0, + 'PRO_ID' => 0, + 'TAS_ID' => 0, + 'DEL_DATA' => '' + ]; +}); - // Grab a user if random - $users = \ProcessMaker\Model\User::all(); - if(!count($users)) { - $user = factory(\ProcessMaker\Model\User::class)->create(); - } else{ - $user = $users->random(); - } +// Create a delegation with the foreign keys +$factory->state(\ProcessMaker\Model\Delegation::class, 'foreign_keys', function (Faker $faker) { + // Create values in the foreign key relations + $application = factory(\ProcessMaker\Model\Application::class)->create(); + $process = factory(\ProcessMaker\Model\Process::class)->create(); + $task = factory(\ProcessMaker\Model\Task::class)->create(); + $user = factory(\ProcessMaker\Model\User::class)->create(); // Return with default values return [ - 'APP_UID' => $app->APP_UID, + 'APP_UID' => $application->APP_UID, 'DEL_INDEX' => 1, - 'APP_NUMBER' => $app->APP_NUMBER, + 'APP_NUMBER' => $application->APP_NUMBER, 'DEL_PREVIOUS' => 0, - 'PRO_UID' => $app->PRO_UID, + 'PRO_UID' => $process->PRO_UID, 'TAS_UID' => $task->TAS_UID, 'USR_UID' => $user->USR_UID, 'DEL_TYPE' => 'NORMAL', @@ -32,7 +53,7 @@ $factory->define(\ProcessMaker\Model\Delegation::class, function(Faker $faker) { 'DEL_TASK_DUE_DATE' => $faker->dateTime(), 'DEL_RISK_DATE' => $faker->dateTime(), 'USR_ID' => $user->USR_ID, - 'PRO_ID' => $process->PRO_ID, + 'PRO_ID' => $process->id, 'TAS_ID' => $task->TAS_ID, 'DEL_DATA' => '' ]; diff --git a/database/factories/ListUnassignedFactory.php b/database/factories/ListUnassignedFactory.php index afbc01949..cf725e55e 100644 --- a/database/factories/ListUnassignedFactory.php +++ b/database/factories/ListUnassignedFactory.php @@ -5,16 +5,10 @@ use Faker\Generator as Faker; $factory->define(\ProcessMaker\Model\ListUnassigned::class, function (Faker $faker) { - $app = factory(\ProcessMaker\Model\Application::class)->create(); + $app = factory(\ProcessMaker\Model\Application::class)->states('foreign_keys')->create(); + $user = factory(\ProcessMaker\Model\User::class)->create(); $process = \ProcessMaker\Model\Process::where('PRO_UID', $app->PRO_UID)->first(); $task = $process->tasks->first(); - // Grab a user if random - $users = \ProcessMaker\Model\User::all(); - if(!count($users)) { - $user = factory(\ProcessMaker\Model\User::class)->create(); - } else{ - $user = $users->random(); - } return [ 'APP_UID' => $app->APP_UID, diff --git a/database/factories/TaskFactory.php b/database/factories/TaskFactory.php index 13dd74abf..9dc2e0c20 100644 --- a/database/factories/TaskFactory.php +++ b/database/factories/TaskFactory.php @@ -7,12 +7,38 @@ use Faker\Generator as Faker; $factory->define(\ProcessMaker\Model\Task::class, function(Faker $faker) { return [ - 'PRO_UID' => function() { - $process = factory(\ProcessMaker\Model\Process::class)->create(); - return $process->PRO_UID; - }, + 'PRO_UID' => G::generateUniqueID(), 'TAS_UID' => G::generateUniqueID(), - 'TAS_ID' => $faker->unique()->numberBetween(1, 100000), + 'TAS_ID' => $faker->unique()->numberBetween(), + 'TAS_TITLE' => $faker->sentence(2), + 'TAS_TYPE' => 'NORMAL', + 'TAS_TYPE_DAY' => 1, + 'TAS_DURATION' => 1, + 'TAS_ASSIGN_TYPE' => 'BALANCED', + 'TAS_ASSIGN_VARIABLE' => '@@SYS_NEXT_USER_TO_BE_ASSIGNED', + 'TAS_MI_INSTANCE_VARIABLE' => '@@SYS_VAR_TOTAL_INSTANCE', + 'TAS_MI_COMPLETE_VARIABLE' => '@@SYS_VAR_TOTAL_INSTANCES_COMPLETE', + 'TAS_ASSIGN_LOCATION' => 'FALSE', + 'TAS_ASSIGN_LOCATION_ADHOC' => 'FALSE', + 'TAS_TRANSFER_FLY' => 'FALSE', + 'TAS_LAST_ASSIGNED' => 0, + 'TAS_USER' => 0, + 'TAS_CAN_UPLOAD' => 'FALSE', + 'TAS_CAN_CANCEL' => 'FALSE', + 'TAS_OWNER_APP' => 'FALSE', + 'TAS_CAN_SEND_MESSAGE' => 'FALSE', + 'TAS_SEND_LAST_EMAIL' => 'FALSE', + ]; +}); + +// Create a delegation with the foreign keys +$factory->state(\ProcessMaker\Model\Task::class, 'foreign_keys', function (Faker $faker) { + return [ + 'PRO_UID' => function() { + return $process = factory(\ProcessMaker\Model\Process::class)->create(); + }, + 'TAS_UID' => G::generateUniqueID(), + 'TAS_ID' => $faker->unique()->numberBetween(1, 200000), 'TAS_TITLE' => $faker->sentence(2), 'TAS_TYPE' => 'NORMAL', 'TAS_TYPE_DAY' => 1, diff --git a/tests/unit/workflow/engine/src/ProcessMaker/Model/DelegationTest.php b/tests/unit/workflow/engine/src/ProcessMaker/Model/DelegationTest.php index e5776daee..a0eeff671 100644 --- a/tests/unit/workflow/engine/src/ProcessMaker/Model/DelegationTest.php +++ b/tests/unit/workflow/engine/src/ProcessMaker/Model/DelegationTest.php @@ -2,7 +2,6 @@ namespace Tests\unit\workflow\src\ProcessMaker\Model; -use Faker\Factory; use G; use Illuminate\Foundation\Testing\DatabaseTransactions; use Illuminate\Support\Facades\DB; @@ -31,35 +30,33 @@ class DelegationTest extends TestCase /** * This checks to make sure pagination is working properly * + * @covers \ProcessMaker\Model\Delegation::search() * @test */ public function it_should_return_pages_of_data() { - factory(User::class, 100)->create(); - factory(Process::class, 10)->create(); - factory(Delegation::class, 51)->create(); + factory(Delegation::class, 51)->states('foreign_keys')->create(); // Get first page, which is 25 - $results = Delegation::search(null, 0, 25); + $results = Delegation::search(null, 0, 25, null, null, null, null, null, null, null, null, 'APP_NUMBER'); $this->assertCount(25, $results['data']); // Get second page, which is 25 results - $results = Delegation::search(null, 25, 25); + $results = Delegation::search(null, 25, 25, null, null, null, null, null, null, null, null, 'APP_NUMBER'); $this->assertCount(25, $results['data']); // Get third page, which is only 1 result - $results = Delegation::search(null, 50, 25); + $results = Delegation::search(null, 50, 25, null, null, null, null, null, null, null, null, 'APP_NUMBER'); $this->assertCount(1, $results['data']); } /** * This checks to make sure pagination is working properly * + * @covers \ProcessMaker\Model\Delegation::search() * @test */ public function it_should_return_pages_of_data_unassigned() { - factory(User::class, 100)->create(); - factory(Process::class, 10)->create(); - factory(Delegation::class, 50)->create(); - factory(Delegation::class)->create([ + factory(Delegation::class, 50)->states('foreign_keys')->create(); + factory(Delegation::class, 1)->states('foreign_keys')->create([ 'USR_ID' => 0 // A self service delegation ]); // Get first page, which is 25 @@ -76,13 +73,14 @@ class DelegationTest extends TestCase /** * This checks to make sure filter by process is working properly * + * @covers \ProcessMaker\Model\Delegation::search() * @test */ public function it_should_return_process_of_data() { - factory(User::class, 100)->create(); + $process = factory(Process::class)->create(); - factory(Delegation::class, 51)->create([ + factory(Delegation::class, 51)->states('foreign_keys')->create([ 'PRO_ID' => $process->id ]); // Get first page, which is 25 @@ -100,17 +98,16 @@ class DelegationTest extends TestCase * This checks to make sure filter by status is working properly * Review status filter by a specific status, such as Draft * + * @covers \ProcessMaker\Model\Delegation::search() * @test */ public function it_should_return_status_draft_of_data() { - factory(User::class, 100)->create(); - factory(Process::class)->create(); $application = factory(Application::class)->create([ 'APP_STATUS_ID' => 1, 'APP_STATUS' => 'DRAFT' ]); - factory(Delegation::class, 51)->create([ + factory(Delegation::class, 51)->states('foreign_keys')->create([ 'APP_NUMBER' => $application->APP_NUMBER ]); // Review the filter by status DRAFT @@ -129,17 +126,16 @@ class DelegationTest extends TestCase * This checks to make sure filter by status is working properly * Review status filter by a specific status, such as To Do * + * @covers \ProcessMaker\Model\Delegation::search() * @test */ public function it_should_return_status_todo_of_data() { - factory(User::class, 100)->create(); - factory(Process::class)->create(); $application = factory(Application::class)->create([ 'APP_STATUS_ID' => 2, 'APP_STATUS' => 'TO_DO' ]); - factory(Delegation::class, 51)->create([ + factory(Delegation::class, 51)->states('foreign_keys')->create([ 'APP_NUMBER' => $application->APP_NUMBER ]); // Review the filter by status TO_DO @@ -158,18 +154,16 @@ class DelegationTest extends TestCase * This checks to make sure filter by status is working properly * Review status filter by a specific status, such as Completed * + * @covers \ProcessMaker\Model\Delegation::search() * @test */ public function it_should_return_status_completed_of_data() { - factory(User::class, 100)->create(); - factory(Process::class)->create(); $application = factory(Application::class)->create([ 'APP_STATUS_ID' => 3, 'APP_STATUS' => 'COMPLETED', ]); - - factory(Delegation::class, 51)->create([ + factory(Delegation::class, 51)->states('foreign_keys')->create([ 'APP_NUMBER' => $application->APP_NUMBER, 'DEL_LAST_INDEX' => 1 ]); @@ -189,18 +183,16 @@ class DelegationTest extends TestCase * This checks to make sure filter by status is working properly * Review status filter by a specific status, such as Cancelled * + * @covers \ProcessMaker\Model\Delegation::search() * @test */ public function it_should_return_status_cancelled_of_data() { - factory(User::class, 100)->create(); - factory(Process::class)->create(); $application = factory(Application::class)->create([ 'APP_STATUS_ID' => 4, 'APP_STATUS' => 'CANCELLED' ]); - - factory(Delegation::class, 51)->create([ + factory(Delegation::class, 51)->states('foreign_keys')->create([ 'APP_NUMBER' => $application->APP_NUMBER, 'DEL_LAST_INDEX' => 1 ]); @@ -219,652 +211,319 @@ class DelegationTest extends TestCase /** * This ensures searching for a valid user works * + * @covers \ProcessMaker\Model\Delegation::search() * @test */ public function it_should_return_one_result_for_specified_user() { - factory(User::class, 100)->create(); - factory(Process::class, 10)->create(); // Create our unique user, with a unique username - $user = factory(User::class)->create([ - 'USR_USERNAME' => 'testcaseuser' - ]); + $user = factory(User::class)->create(); // Create a new delegation, but for this specific user - factory(Delegation::class)->create([ + factory(Delegation::class)->states('foreign_keys')->create([ 'USR_UID' => $user->USR_UID, 'USR_ID' => $user->USR_ID ]); // Now fetch results, and assume delegation count is 1 and the user points to our user $results = Delegation::search($user->USR_ID); $this->assertCount(1, $results['data']); - $this->assertEquals('testcaseuser', $results['data'][0]['USRCR_USR_USERNAME']); + $this->assertEquals($user->USR_USERNAME, $results['data'][0]['USRCR_USR_USERNAME']); } /** * This ensures searching by case number and review the order * + * @covers \ProcessMaker\Model\Delegation::search() * @test */ - public function it_should_search_by_case_id_and_order_of_data() + public function it_should_search_and_filter_by_app_number() { - factory(User::class, 100)->create(); - factory(Process::class)->create(); - $application = factory(Application::class)->create([ - 'APP_NUMBER' => 11 - ]); - factory(Delegation::class)->create([ - 'APP_NUMBER' => $application->APP_NUMBER - ]); - $application = factory(Application::class)->create([ - 'APP_NUMBER' => 111 - ]); - factory(Delegation::class)->create([ - 'APP_NUMBER' => $application->APP_NUMBER - ]); - $application = factory(Application::class)->create([ - 'APP_NUMBER' => 1111 - ]); - factory(Delegation::class)->create([ - 'APP_NUMBER' => $application->APP_NUMBER - ]); - $application = factory(Application::class)->create([ - 'APP_NUMBER' => 11111 - ]); - factory(Delegation::class)->create([ - 'APP_NUMBER' => $application->APP_NUMBER - ]); - $application = factory(Application::class)->create([ - 'APP_NUMBER' => 111111 - ]); - factory(Delegation::class)->create([ - 'APP_NUMBER' => $application->APP_NUMBER - ]); - $application = factory(Application::class)->create([ - 'APP_NUMBER' => 1111111 - ]); - factory(Delegation::class)->create([ - 'APP_NUMBER' => $application->APP_NUMBER - ]); - $application = factory(Application::class)->create([ - 'APP_NUMBER' => 11111111 - ]); - factory(Delegation::class)->create([ - 'APP_NUMBER' => $application->APP_NUMBER - ]); - // Searching by a existent case number, result ordered in DESC mode - $results = Delegation::search(null, 0, 10, 11, null, null, 'DESC', + for ($x = 1; $x <= 10; $x++) { + $application = factory(Application::class)->create(); + factory(Delegation::class)->states('foreign_keys')->create([ + 'APP_NUMBER' => $application->APP_NUMBER, + 'DEL_THREAD_STATUS' => 'OPEN' + ]); + } + // Searching by a existent case number, result ordered by APP_NUMBER, filter by APP_NUMBER in DESC mode + $results = Delegation::search(null, 0, 25, $application->APP_NUMBER, null, null, 'DESC', 'APP_NUMBER', null, null, null, 'APP_NUMBER'); $this->assertCount(1, $results['data']); - $this->assertEquals(11, $results['data'][0]['APP_NUMBER']); - // Searching by another existent case number, result ordered in ASC mode - $results = Delegation::search(null, 0, 10, 11111, null, null, 'ASC', + $this->assertEquals($application->APP_NUMBER, $results['data'][0]['APP_NUMBER']); + // Searching by a existent case number, result ordered by APP_NUMBER, filter by APP_NUMBER in ASC mode + $results = Delegation::search(null, 0, 25, $application->APP_NUMBER, null, null, 'ASC', 'APP_NUMBER', null, null, null, 'APP_NUMBER'); $this->assertCount(1, $results['data']); - $this->assertEquals(11111, $results['data'][0]['APP_NUMBER']); - // Searching by another existent case number, result ordered in DESC mode - $results = Delegation::search(null, 0, 10, 1111111, null, null, 'DESC', - 'APP_NUMBER', null, null, null, 'APP_NUMBER'); - $this->assertCount(1, $results['data']); - $this->assertEquals(1111111, $results['data'][0]['APP_NUMBER']); - // Searching by a not existent case number, result ordered in DESC mode - $results = Delegation::search(null, 0, 10, 1000, null, null, 'DESC', - 'APP_NUMBER', null, null, null, 'APP_NUMBER'); - $this->assertCount(0, $results['data']); - // Searching by a not existent case number, result ordered in ASC mode - $results = Delegation::search(null, 0, 10, 99999, null, null, 'ASC', - 'APP_NUMBER', null, null, null, 'APP_NUMBER'); - $this->assertCount(0, $results['data']); + $this->assertEquals($application->APP_NUMBER, $results['data'][0]['APP_NUMBER']); } - /** - * This ensures searching by case title and review the page + * This ensures searching by case number and review the order * + * @covers \ProcessMaker\Model\Delegation::search() * @test */ - public function it_should_search_by_case_title_and_pages_of_data_app_number_matches_case_title() + public function it_should_search_and_filter_by_app_title() { - factory(User::class, 100)->create(); - factory(Process::class)->create(); - $application = factory(Application::class)->create([ - 'APP_NUMBER' => 3001, - 'APP_TITLE' => 'Request # 3001' - ]); - factory(Delegation::class)->create([ - 'APP_NUMBER' => $application->APP_NUMBER - ]); - $application = factory(Application::class)->create([ - 'APP_NUMBER' => 3010, - 'APP_TITLE' => 'Request # 3010' - ]); - factory(Delegation::class)->create([ - 'APP_NUMBER' => $application->APP_NUMBER - ]); - $application = factory(Application::class)->create([ - 'APP_NUMBER' => 3011, - 'APP_TITLE' => 'Request # 3011' - ]); - factory(Delegation::class)->create([ - 'APP_NUMBER' => $application->APP_NUMBER - ]); - $application = factory(Application::class)->create([ - 'APP_NUMBER' => 3012, - 'APP_TITLE' => 'Request # 3012' - ]); - factory(Delegation::class)->create([ - 'APP_NUMBER' => $application->APP_NUMBER - ]); - $application = factory(Application::class)->create([ - 'APP_NUMBER' => 3013, - 'APP_TITLE' => 'Request # 3013' - ]); - factory(Delegation::class)->create([ - 'APP_NUMBER' => $application->APP_NUMBER - ]); - $application = factory(Application::class)->create([ - 'APP_NUMBER' => 3014, - 'APP_TITLE' => 'Request # 3014' - ]); - factory(Delegation::class)->create([ - 'APP_NUMBER' => $application->APP_NUMBER - ]); - + $title = ''; + for ($x = 1; $x <= 10; $x++) { + $application = factory(Application::class)->states('foreign_keys')->create(); + factory(Delegation::class)->states('foreign_keys')->create([ + 'APP_UID' => $application->APP_UID, + 'APP_NUMBER' => $application->APP_NUMBER, + 'PRO_UID' => $application->PRO_UID, + 'PRO_ID' => $application->PRO_ID + ]); + $title = $application->APP_TITLE; + } // We need to commit the records inserted because is needed for the "fulltext" index DB::commit(); - // Get first page, the major case id - $results = Delegation::search(null, 0, 10, 'Request', null, null, 'DESC', - 'APP_NUMBER', null, null, null, 'APP_TITLE'); - $this->assertCount(6, $results['data']); - $this->assertEquals(3014, $results['data'][0]['APP_NUMBER']); - $this->assertEquals('Request # 3014', $results['data'][0]['APP_TITLE']); - - // Get first page, the minor case id - $results = Delegation::search(null, 0, 10, 'Request', null, null, 'ASC', - 'APP_NUMBER', null, null, null, 'APP_TITLE'); - $this->assertCount(6, $results['data']); - $this->assertEquals(3001, $results['data'][0]['APP_NUMBER']); - $this->assertEquals('Request # 3001', $results['data'][0]['APP_TITLE']); - - // Check the pagination - $results = Delegation::search(null, 0, 5, 'Request', null, null, 'ASC', - 'APP_NUMBER', null, null, null, 'APP_TITLE'); - $this->assertCount(5, $results['data']); - $results = Delegation::search(null, 5, 2, 'Request', null, null, 'ASC', + // Searching by a existent case title, result ordered by APP_NUMBER, filter by APP_NUMBER in DESC mode + $results = Delegation::search(null, 0, 10, $title, null, null, 'DESC', 'APP_NUMBER', null, null, null, 'APP_TITLE'); $this->assertCount(1, $results['data']); - - // We need to clean the tables manually - // @todo: The "Delegation" factory should be improved, the create method always is creating a record in application table - DB::unprepared("TRUNCATE APPLICATION;"); - DB::unprepared("TRUNCATE APP_DELEGATION;"); + $this->assertEquals($title, $results['data'][0]['APP_TITLE']); + // Searching by a existent case title, result ordered by APP_NUMBER, filter by APP_NUMBER in ASC mode + $results = Delegation::search(null, 0, 10, $title, null, null, 'ASC', + 'APP_NUMBER', null, null, null, 'APP_TITLE'); + $this->assertCount(1, $results['data']); + $this->assertEquals($title, $results['data'][0]['APP_TITLE']); } /** * This ensures searching by task title and review the page * + * @covers \ProcessMaker\Model\Delegation::search() * @test */ - public function it_should_search_by_task_title_and_pages_of_data() + public function it_should_search_and_order_by_task_title() { - factory(User::class, 100)->create(); - factory(Process::class)->create(); - $task = factory(Task::class)->create([ - 'TAS_TITLE' => 'Request task' + factory(Delegation::class, 5)->states('foreign_keys')->create([ + 'TAS_ID' => function () { + return factory(Task::class)->create()->TAS_ID; + } ]); - factory(Delegation::class, 5)->create([ + $task = factory(Task::class)->create(); + factory(Delegation::class)->states('foreign_keys')->create([ 'TAS_ID' => $task->TAS_ID ]); - $task = factory(Task::class)->create([ - 'TAS_TITLE' => 'Account task' - ]); - factory(Delegation::class, 5)->create([ - 'TAS_ID' => $task->TAS_ID - ]); - // Get first page, the order taskTitle - $results = Delegation::search(null, 0, 6, 'task', null, null, 'ASC', + // Get the order taskTitle in ASC mode + $results = Delegation::search(null, 0, 10, $task->TAS_TITLE, null, null, 'ASC', 'TAS_TITLE', null, null, null, 'TAS_TITLE'); - $this->assertCount(6, $results['data']); - $this->assertEquals('Account task', $results['data'][0]['APP_TAS_TITLE']); - $results = Delegation::search(null, 6, 6, 'task', null, null, 'ASC', - 'TAS_TITLE', null, null, null, 'TAS_TITLE'); - $this->assertEquals('Request task', $results['data'][0]['APP_TAS_TITLE']); - - // Get first page, the order taskTitle - $results = Delegation::search(null, 0, 6, 'task', null, null, 'DESC', - 'TAS_TITLE', null, null, null, 'TAS_TITLE'); - $this->assertCount(6, $results['data']); - $this->assertEquals('Request task', $results['data'][0]['APP_TAS_TITLE']); - $results = Delegation::search(null, 6, 6, 'task', null, null, 'DESC', - 'TAS_TITLE', null, null, null, 'TAS_TITLE'); - $this->assertEquals('Account task', $results['data'][0]['APP_TAS_TITLE']); - //Check the pagination - $results = Delegation::search(null, 0, 6, 'task', null, null, 'DESC', - 'TAS_TITLE', null, null, null, 'TAS_TITLE'); - $this->assertCount(6, $results['data']); - $results = Delegation::search(null, 6, 6, 'task', null, null, 'DESC', - 'TAS_TITLE', null, null, null, 'TAS_TITLE'); - $this->assertCount(4, $results['data']); - } - - /** - * This ensures searching by case title and review the page - * - * @test - */ - public function it_should_search_by_case_title_and_pages_of_data_app_number_no_matches_case_title() - { - factory(User::class, 100)->create(); - factory(Process::class)->create(); - $application = factory(Application::class)->create([ - 'APP_NUMBER' => 2001, - 'APP_TITLE' => 'Request from Abigail check nro 25001' - ]); - factory(Delegation::class)->create([ - 'APP_NUMBER' => $application->APP_NUMBER - ]); - $application = factory(Application::class)->create([ - 'APP_NUMBER' => 2010, - 'APP_TITLE' => 'Request from Abigail check nro 12' - ]); - factory(Delegation::class)->create([ - 'APP_NUMBER' => $application->APP_NUMBER - ]); - $application = factory(Application::class)->create([ - 'APP_NUMBER' => 2011, - 'APP_TITLE' => 'Request from Abigail check nro 1000' - ]); - factory(Delegation::class)->create([ - 'APP_NUMBER' => $application->APP_NUMBER - ]); - $application = factory(Application::class)->create([ - 'APP_NUMBER' => 2012, - 'APP_TITLE' => 'Request from Abigail check nro 11000' - ]); - factory(Delegation::class)->create([ - 'APP_NUMBER' => $application->APP_NUMBER - ]); - $application = factory(Application::class, 1)->create([ - 'APP_NUMBER' => 2013, - 'APP_TITLE' => 'Request from Abigail check nro 12000' - ]); - factory(Delegation::class)->create([ - 'APP_NUMBER' => $application[0]->APP_NUMBER - ]); - $application = factory(Application::class)->create([ - 'APP_TITLE' => 2014, - 'APP_TITLE' => 'Request from Abigail check nro 111' - ]); - factory(Delegation::class)->create([ - 'APP_NUMBER' => $application->APP_NUMBER - ]); - - // We need to commit the records inserted because is needed for the "fulltext" index - DB::commit(); - - // Get first page, the major case title - $results = Delegation::search(null, 0, 10, 'Abigail', null, null, 'ASC', - 'APP_NUMBER', null, null, null, 'APP_TITLE'); - $this->assertCount(6, $results['data']); - $this->assertEquals(2001, $results['data'][0]['APP_NUMBER']); - $this->assertEquals('Request from Abigail check nro 25001', $results['data'][0]['APP_TITLE']); - - // Check the pagination - $results = Delegation::search(null, 0, 5, 'Abigail', null, null, 'ASC', - 'APP_NUMBER', null, null, null, 'APP_TITLE'); - $this->assertCount(5, $results['data']); - $results = Delegation::search(null, 5, 2, 'Abigail', null, null, 'ASC', - 'APP_NUMBER', null, null, null, 'APP_TITLE'); $this->assertCount(1, $results['data']); + $this->assertEquals($task->TAS_TITLE, $results['data'][0]['APP_TAS_TITLE']); + $results = Delegation::search(null, 0, 10, null, null, null, 'ASC', + 'TAS_TITLE', null, null, null, 'TAS_TITLE'); + $this->assertGreaterThan($results['data'][0]['APP_TAS_TITLE'], $results['data'][1]['APP_TAS_TITLE']); - // We need to clean the tables manually - // @todo: The "Delegation" factory should be improved, the create method always is creating a record in application table - DB::unprepared("TRUNCATE APPLICATION;"); - DB::unprepared("TRUNCATE APP_DELEGATION;"); + // Get the order taskTitle in DESC mode + $results = Delegation::search(null, 0, 10, $task->TAS_TITLE, null, null, 'DESC', + 'TAS_TITLE', null, null, null, 'TAS_TITLE'); + $this->assertCount(1, $results['data']); + $this->assertEquals($task->TAS_TITLE, $results['data'][0]['APP_TAS_TITLE']); + $results = Delegation::search(null, 0, 10, null, null, null, 'DESC', + 'TAS_TITLE', null, null, null, 'TAS_TITLE'); + $this->assertLessThan($results['data'][0]['APP_TAS_TITLE'], $results['data'][1]['APP_TAS_TITLE']); } /** * This ensures ordering ascending and descending works by case number APP_NUMBER * + * @covers \ProcessMaker\Model\Delegation::search() * @test */ public function it_should_sort_by_case_id() { - factory(User::class, 100)->create(); - factory(Process::class)->create(); - $application = factory(Application::class)->create([ - 'APP_NUMBER' => 2001 - ]); - factory(Delegation::class)->create([ - 'APP_NUMBER' => $application->APP_NUMBER - ]); - $application = factory(Application::class)->create([ - 'APP_NUMBER' => 30002 - ]); - factory(Delegation::class)->create([ - 'APP_NUMBER' => $application->APP_NUMBER - ]); + factory(Delegation::class, 2)->states('foreign_keys')->create(); // Get first page, the minor case id - $results = Delegation::search(null, 0, 25, null, null, null, 'ASC', 'APP_NUMBER'); + $results = Delegation::search(null, 0, 2, null, null, null, 'ASC', 'APP_NUMBER'); $this->assertCount(2, $results['data']); - $this->assertEquals(2001, $results['data'][0]['APP_NUMBER']); - $this->assertEquals(30002, $results['data'][1]['APP_NUMBER']); + $this->assertGreaterThan($results['data'][0]['APP_NUMBER'], $results['data'][1]['APP_NUMBER']); // Get first page, the major case id - $results = Delegation::search(null, 0, 25, null, null, null, 'DESC', 'APP_NUMBER'); + $results = Delegation::search(null, 0, 2, null, null, null, 'DESC', 'APP_NUMBER'); $this->assertCount(2, $results['data']); - $this->assertEquals(30002, $results['data'][0]['APP_NUMBER']); - $this->assertEquals(2001, $results['data'][1]['APP_NUMBER']); + $this->assertLessThan($results['data'][0]['APP_NUMBER'], $results['data'][1]['APP_NUMBER']); } /** * This ensures ordering ascending and descending works by case title APP_TITLE * + * @covers \ProcessMaker\Model\Delegation::search() * @test */ public function it_should_sort_by_case_title() { - factory(User::class, 100)->create(); - factory(Process::class)->create(); - $application = factory(Application::class)->create([ - 'APP_TITLE' => 'Request by Thomas' - ]); - factory(Delegation::class)->create([ - 'APP_NUMBER' => $application->APP_NUMBER - ]); - $application = factory(Application::class)->create([ - 'APP_TITLE' => 'Request by Ariel' - ]); - factory(Delegation::class)->create([ - 'APP_NUMBER' => $application->APP_NUMBER - ]); - // Get first page, the minor case id - $results = Delegation::search(null, 0, 25, null, null, null, 'ASC', 'APP_TITLE'); + factory(Delegation::class, 2)->states('foreign_keys')->create(); + // Get first page, the minor case title + $results = Delegation::search(null, 0, 2, null, null, null, 'ASC', 'APP_TITLE'); $this->assertCount(2, $results['data']); - $this->assertEquals('Request by Ariel', $results['data'][0]['APP_TITLE']); - $this->assertEquals('Request by Thomas', $results['data'][1]['APP_TITLE']); - // Get first page, the major case id - $results = Delegation::search(null, 0, 25, null, null, null, 'DESC', 'APP_TITLE'); + $this->assertGreaterThan($results['data'][0]['APP_TITLE'], $results['data'][1]['APP_TITLE']); + // Get first page, the major case title + $results = Delegation::search(null, 0, 2, null, null, null, 'DESC', 'APP_TITLE'); $this->assertCount(2, $results['data']); - $this->assertEquals('Request by Thomas', $results['data'][0]['APP_TITLE']); - $this->assertEquals('Request by Ariel', $results['data'][1]['APP_TITLE']); + $this->assertLessThan($results['data'][0]['APP_TITLE'], $results['data'][1]['APP_TITLE']); } /** * This ensures ordering ascending and descending works by case title APP_PRO_TITLE * + * @covers \ProcessMaker\Model\Delegation::search() * @test */ public function it_should_sort_by_process() { - $faker = Factory::create(); - factory(User::class, 100)->create(); - $process = factory(Process::class)->create([ - 'PRO_ID' => $faker->unique()->numberBetween(1, 10000000), - 'PRO_TITLE' => 'Egypt Supplier Payment Proposal' + factory(Delegation::class, 3)->states('foreign_keys')->create([ + 'PRO_ID' => function () { + return factory(Process::class)->create()->id; + } ]); - factory(Delegation::class)->create([ - 'PRO_ID' => $process->id - ]); - $process = factory(Process::class)->create([ - 'PRO_ID' => $faker->unique()->numberBetween(1, 10000000), - 'PRO_TITLE' => 'China Supplier Payment Proposal' - ]); - factory(Delegation::class)->create([ - 'PRO_ID' => $process->id - ]); - $process = factory(Process::class)->create([ - 'PRO_ID' => $faker->unique()->numberBetween(1, 10000000), - 'PRO_TITLE' => 'Russia Supplier Payment Proposal' - ]); - factory(Delegation::class)->create([ - 'PRO_ID' => $process->id - ]); - // Get first page, all process ordering ascending + // Get first page, all process ordering ASC $results = Delegation::search(null, 0, 3, null, null, null, 'ASC', 'APP_PRO_TITLE'); $this->assertCount(3, $results['data']); - $this->assertEquals('China Supplier Payment Proposal', $results['data'][0]['APP_PRO_TITLE']); - $this->assertEquals('Egypt Supplier Payment Proposal', $results['data'][1]['APP_PRO_TITLE']); - $this->assertEquals('Russia Supplier Payment Proposal', $results['data'][2]['APP_PRO_TITLE']); - // Get first page, all process ordering descending + $this->assertGreaterThan($results['data'][0]['APP_PRO_TITLE'], $results['data'][1]['APP_PRO_TITLE']); + // Get first page, all process ordering DESC $results = Delegation::search(null, 0, 3, null, null, null, 'DESC', 'APP_PRO_TITLE'); $this->assertCount(3, $results['data']); - $this->assertEquals('Russia Supplier Payment Proposal', $results['data'][0]['APP_PRO_TITLE']); - $this->assertEquals('Egypt Supplier Payment Proposal', $results['data'][1]['APP_PRO_TITLE']); - $this->assertEquals('China Supplier Payment Proposal', $results['data'][2]['APP_PRO_TITLE']); + $this->assertLessThan($results['data'][0]['APP_PRO_TITLE'], $results['data'][1]['APP_PRO_TITLE']); } /** * This ensures ordering ascending and descending works by task title APP_TAS_TITLE * + * @covers \ProcessMaker\Model\Delegation::search() * @test */ public function it_should_sort_by_task_title() { - factory(User::class, 100)->create(); - factory(Process::class)->create(); - $task = factory(Task::class)->create([ - 'TAS_TITLE' => 'Initiate Request' + factory(Delegation::class, 2)->states('foreign_keys')->create([ + 'TAS_ID' => function () { + return factory(Task::class)->create()->TAS_ID; + } ]); - factory(Delegation::class)->create([ - 'TAS_ID' => $task->TAS_ID - ]); - $task = factory(Task::class)->create([ - 'TAS_TITLE' => 'Waiting for AP Manager Validation' - ]); - factory(Delegation::class)->create([ - 'TAS_ID' => $task->TAS_ID - ]); - - $results = Delegation::search(null, 0, 25, null, null, null, 'ASC', 'APP_TAS_TITLE'); + // Get first page, all titles ordering ASC + $results = Delegation::search(null, 0, 2, null, null, null, 'ASC', 'APP_TAS_TITLE'); $this->assertCount(2, $results['data']); - $this->assertEquals('Initiate Request', $results['data'][0]['APP_TAS_TITLE']); - $this->assertEquals('Waiting for AP Manager Validation', $results['data'][1]['APP_TAS_TITLE']); - - $results = Delegation::search(null, 0, 25, null, null, null, 'DESC', 'APP_TAS_TITLE'); + $this->assertGreaterThan($results['data'][0]['APP_TAS_TITLE'], $results['data'][1]['APP_TAS_TITLE']); + // Get first page, all titles ordering DESC + $results = Delegation::search(null, 0, 2, null, null, null, 'DESC', 'APP_TAS_TITLE'); $this->assertCount(2, $results['data']); - $this->assertEquals('Waiting for AP Manager Validation', $results['data'][0]['APP_TAS_TITLE']); - $this->assertEquals('Initiate Request', $results['data'][1]['APP_TAS_TITLE']); + $this->assertLessThan($results['data'][0]['APP_TAS_TITLE'], $results['data'][1]['APP_TAS_TITLE']); } /** * This ensures ordering ascending and descending works by current user * + * @covers \ProcessMaker\Model\Delegation::search() * @test */ public function it_should_sort_by_user() { - factory(User::class, 100)->create(); - factory(Process::class, 10)->create(); - // Create our unique user, with a unique username - $user = factory(User::class)->create([ - 'USR_USERNAME' => 'gary', - 'USR_LASTNAME' => 'Gary', - 'USR_FIRSTNAME' => 'Bailey', + factory(Delegation::class, 2)->states('foreign_keys')->create([ + 'USR_ID' => function () { + return factory(User::class)->create()->USR_ID; + } ]); - // Create a new delegation, but for this specific user - factory(Delegation::class)->create([ - 'USR_UID' => $user->USR_UID, - 'USR_ID' => $user->USR_ID - ]); - $user = factory(User::class)->create([ - 'USR_USERNAME' => 'paul', - 'USR_LASTNAME' => 'Paul', - 'USR_FIRSTNAME' => 'Griffis', - ]); - // Create a new delegation, but for this specific user - factory(Delegation::class)->create([ - 'USR_UID' => $user->USR_UID, - 'USR_ID' => $user->USR_ID - ]); - // Now fetch results, and assume delegation count is 2 and the ordering ascending return Gary - $results = Delegation::search(null, 0, 25, null, null, null, 'ASC', 'APP_CURRENT_USER'); + // Get first page, order by User ordering ASC + $results = Delegation::search(null, 0, 2, null, null, null, 'ASC', 'APP_CURRENT_USER'); $this->assertCount(2, $results['data']); - $this->assertEquals('Gary Bailey', $results['data'][0]['APP_CURRENT_USER']); - - // Now fetch results, and assume delegation count is 2 and the ordering descending return Gary - $results = Delegation::search(null, 0, 25, null, null, null, 'DESC', 'APP_CURRENT_USER'); + $this->assertGreaterThan($results['data'][0]['APP_CURRENT_USER'], $results['data'][1]['APP_CURRENT_USER']); + // Get first page, order by User ordering ASC + $results = Delegation::search(null, 0, 2, null, null, null, 'DESC', 'APP_CURRENT_USER'); $this->assertCount(2, $results['data']); - $this->assertEquals('Paul Griffis', $results['data'][0]['APP_CURRENT_USER']); + $this->assertLessThan($results['data'][0]['APP_CURRENT_USER'], $results['data'][1]['APP_CURRENT_USER']); } /** * This ensures ordering ordering ascending and descending works by last modified APP_UPDATE_DATE * + * @covers \ProcessMaker\Model\Delegation::search() * @test */ public function it_should_sort_by_last_modified() { - factory(User::class, 100)->create(); - factory(Process::class)->create(); - $application = factory(Application::class)->create([ - 'APP_UPDATE_DATE' => '2019-01-02 00:00:00' - ]); - factory(Delegation::class)->create([ - 'APP_NUMBER' => $application->APP_NUMBER - ]); - $application = factory(Application::class)->create([ - 'APP_UPDATE_DATE' => '2019-01-03 00:00:00' - ]); - factory(Delegation::class)->create([ - 'APP_NUMBER' => $application->APP_NUMBER - ]); - $application = factory(Application::class)->create([ - 'APP_UPDATE_DATE' => '2019-01-04 00:00:00' - ]); - factory(Delegation::class)->create([ - 'APP_NUMBER' => $application->APP_NUMBER + factory(Delegation::class, 2)->states('foreign_keys')->create([ + 'APP_NUMBER' => function () { + return factory(Application::class)->create()->APP_NUMBER; + } ]); // Get first page, the minor last modified - $results = Delegation::search(null, 0, 1, null, null, null, 'ASC', 'APP_UPDATE_DATE'); - $this->assertCount(1, $results['data']); - $this->assertEquals('2019-01-02 00:00:00', $results['data'][0]['APP_UPDATE_DATE']); - - $results = Delegation::search(null, 1, 1, null, null, null, 'ASC', 'APP_UPDATE_DATE'); - $this->assertCount(1, $results['data']); - $this->assertEquals('2019-01-03 00:00:00', $results['data'][0]['APP_UPDATE_DATE']); - - $results = Delegation::search(null, 2, 1, null, null, null, 'ASC', 'APP_UPDATE_DATE'); - $this->assertCount(1, $results['data']); - $this->assertEquals('2019-01-04 00:00:00', $results['data'][0]['APP_UPDATE_DATE']); - - $results = Delegation::search(null, 0, 1, null, null, null, 'DESC', 'APP_UPDATE_DATE'); - $this->assertCount(1, $results['data']); - $this->assertEquals('2019-01-04 00:00:00', $results['data'][0]['APP_UPDATE_DATE']); - - $results = Delegation::search(null, 1, 1, null, null, null, 'DESC', 'APP_UPDATE_DATE'); - $this->assertCount(1, $results['data']); - $this->assertEquals('2019-01-03 00:00:00', $results['data'][0]['APP_UPDATE_DATE']); - - $results = Delegation::search(null, 2, 1, null, null, null, 'DESC', 'APP_UPDATE_DATE'); - $this->assertCount(1, $results['data']); - $this->assertEquals('2019-01-02 00:00:00', $results['data'][0]['APP_UPDATE_DATE']); + $results = Delegation::search(null, 0, 2, null, null, null, 'ASC', 'APP_UPDATE_DATE'); + $this->assertCount(2, $results['data']); + $this->assertGreaterThan($results['data'][0]['APP_UPDATE_DATE'], $results['data'][1]['APP_UPDATE_DATE']); + // Get first page, the major last modified + $results = Delegation::search(null, 0, 2, null, null, null, 'DESC', 'APP_UPDATE_DATE'); + $this->assertCount(2, $results['data']); + $this->assertLessThan($results['data'][0]['APP_UPDATE_DATE'], $results['data'][1]['APP_UPDATE_DATE']); } /** * This ensures ordering ascending and descending works by due date DEL_TASK_DUE_DATE * + * @covers \ProcessMaker\Model\Delegation::search() * @test */ public function it_should_sort_by_due_date() { - factory(User::class, 100)->create(); - factory(Process::class)->create(); - factory(Delegation::class, 10)->create([ - 'DEL_TASK_DUE_DATE' => '2019-01-02 00:00:00' - ]); - factory(Delegation::class, 10)->create([ - 'DEL_TASK_DUE_DATE' => '2019-01-03 00:00:00' - ]); - factory(Delegation::class, 9)->create([ - 'DEL_TASK_DUE_DATE' => '2019-01-04 00:00:00' - ]); - // Get first page, the minor last modified + factory(Delegation::class, 10)->states('foreign_keys')->create(); + // Get first page, the minor due date $results = Delegation::search(null, 0, 10, null, null, null, 'ASC', 'DEL_TASK_DUE_DATE'); $this->assertCount(10, $results['data']); - $this->assertEquals('2019-01-02 00:00:00', $results['data'][0]['DEL_TASK_DUE_DATE']); - - $results = Delegation::search(null, 10, 10, null, null, null, 'ASC', 'DEL_TASK_DUE_DATE'); - $this->assertCount(10, $results['data']); - $this->assertEquals('2019-01-03 00:00:00', $results['data'][0]['DEL_TASK_DUE_DATE']); - - $results = Delegation::search(null, 20, 10, null, null, null, 'ASC', 'DEL_TASK_DUE_DATE'); - $this->assertCount(9, $results['data']); - $this->assertEquals('2019-01-04 00:00:00', $results['data'][0]['DEL_TASK_DUE_DATE']); - + $this->assertGreaterThan($results['data'][0]['DEL_TASK_DUE_DATE'], $results['data'][1]['DEL_TASK_DUE_DATE']); + // Get first page, the major due date $results = Delegation::search(null, 0, 10, null, null, null, 'DESC', 'DEL_TASK_DUE_DATE'); $this->assertCount(10, $results['data']); - $this->assertEquals('2019-01-04 00:00:00', $results['data'][0]['DEL_TASK_DUE_DATE']); - - $results = Delegation::search(null, 10, 10, null, null, null, 'DESC', 'DEL_TASK_DUE_DATE'); - $this->assertCount(10, $results['data']); - $this->assertEquals('2019-01-03 00:00:00', $results['data'][0]['DEL_TASK_DUE_DATE']); - - $results = Delegation::search(null, 20, 10, null, null, null, 'DESC', 'DEL_TASK_DUE_DATE'); - $this->assertCount(9, $results['data']); - $this->assertEquals('2019-01-02 00:00:00', $results['data'][0]['DEL_TASK_DUE_DATE']); + $this->assertLessThan($results['data'][0]['DEL_TASK_DUE_DATE'], $results['data'][1]['DEL_TASK_DUE_DATE']); } /** * This ensures ordering ascending and descending works by status APP_STATUS * + * @covers \ProcessMaker\Model\Delegation::search() * @test */ public function it_should_sort_by_status() { - factory(User::class, 100)->create(); - factory(Process::class)->create(); - $application = factory(Application::class)->create([ - 'APP_STATUS' => 'DRAFT' + factory(Delegation::class)->states('foreign_keys')->create([ + 'APP_NUMBER' => function () { + return factory(Application::class)->create(['APP_STATUS' => 'DRAFT', 'APP_STATUS_ID' => 1])->APP_NUMBER; + } ]); - factory(Delegation::class, 25)->create([ - 'APP_NUMBER' => $application->APP_NUMBER + factory(Delegation::class)->states('foreign_keys')->create([ + 'APP_NUMBER' => function () { + return factory(Application::class)->create(['APP_STATUS' => 'TO_DO', 'APP_STATUS_ID' => 2])->APP_NUMBER; + } ]); - $application = factory(Application::class)->create([ - 'APP_STATUS' => 'TO_DO' + factory(Delegation::class)->states('foreign_keys')->create([ + 'APP_NUMBER' => function () { + return factory(Application::class)->create([ + 'APP_STATUS' => 'COMPLETED', + 'APP_STATUS_ID' => 3 + ])->APP_NUMBER; + } ]); - factory(Delegation::class, 25)->create([ - 'APP_NUMBER' => $application->APP_NUMBER + factory(Delegation::class)->states('foreign_keys')->create([ + 'APP_NUMBER' => function () { + return factory(Application::class)->create([ + 'APP_STATUS' => 'CANCELLED', + 'APP_STATUS_ID' => 4 + ])->APP_NUMBER; + } ]); - $application = factory(Application::class)->create([ - 'APP_STATUS' => 'COMPLETED' - ]); - factory(Delegation::class, 25)->create([ - 'APP_NUMBER' => $application->APP_NUMBER - ]); - $application = factory(Application::class)->create([ - 'APP_STATUS' => 'CANCELLED' - ]); - factory(Delegation::class, 25)->create([ - 'APP_NUMBER' => $application->APP_NUMBER - ]); - // Get first page, the minor status label - $results = Delegation::search(null, 0, 25, null, null, null, 'ASC', 'APP_STATUS'); - $this->assertEquals('CANCELLED', $results['data'][0]['APP_STATUS']); - $results = Delegation::search(null, 25, 25, null, null, null, 'ASC', 'APP_STATUS'); - $this->assertEquals('COMPLETED', $results['data'][0]['APP_STATUS']); - $results = Delegation::search(null, 50, 25, null, null, null, 'ASC', 'APP_STATUS'); - $this->assertEquals('DRAFT', $results['data'][0]['APP_STATUS']); - $results = Delegation::search(null, 75, 25, null, null, null, 'ASC', 'APP_STATUS'); - $this->assertEquals('TO_DO', $results['data'][0]['APP_STATUS']); + $results = Delegation::search(null, 0, 5, null, null, null, 'ASC', 'APP_STATUS_LABEL'); + $this->assertGreaterThanOrEqual($results['data'][0]['APP_STATUS'], $results['data'][1]['APP_STATUS']); // Get first page, the major status label - $results = Delegation::search(null, 0, 25, null, null, null, 'DESC', 'APP_STATUS'); - $this->assertEquals('TO_DO', $results['data'][0]['APP_STATUS']); - $results = Delegation::search(null, 25, 25, null, null, null, 'DESC', 'APP_STATUS'); - $this->assertEquals('DRAFT', $results['data'][0]['APP_STATUS']); - $results = Delegation::search(null, 50, 25, null, null, null, 'DESC', 'APP_STATUS'); - $this->assertEquals('COMPLETED', $results['data'][0]['APP_STATUS']); - $results = Delegation::search(null, 75, 25, null, null, null, 'DESC', 'APP_STATUS'); - $this->assertEquals('CANCELLED', $results['data'][0]['APP_STATUS']); + $results = Delegation::search(null, 0, 5, null, null, null, 'DESC', 'APP_STATUS_LABEL'); + $this->assertLessThanOrEqual($results['data'][0]['APP_STATUS'], $results['data'][1]['APP_STATUS']); } /** * This checks to make sure filter by category is working properly * + * @covers \ProcessMaker\Model\Delegation::search() * @test */ public function it_should_return_data_filtered_by_process_category() { - factory(User::class, 100)->create(); // Dummy Processes factory(ProcessCategory::class, 4)->create(); factory(Process::class, 4)->create([ @@ -875,41 +534,46 @@ class DelegationTest extends TestCase 'PRO_ID' => Process::all()->random()->PRO_ID ]); // Process with the category to search - $processCategorySearch = factory(ProcessCategory::class, 1)->create(); - $categoryUid = $processCategorySearch[0]->CATEGORY_UID; - $processSearch = factory(Process::class, 1)->create([ + $category = factory(ProcessCategory::class)->create(); + $processSearch = factory(Process::class)->create([ 'PRO_ID' => 5, - 'PRO_CATEGORY' => $categoryUid + 'PRO_CATEGORY' => $category->CATEGORY_UID ]); // Delegations to found - factory(Delegation::class, 51)->create([ - 'PRO_ID' => $processSearch[0]->id + factory(Delegation::class, 51)->states('foreign_keys')->create([ + 'PRO_ID' => $processSearch->id ]); - // Get first page, which is 25 - $results = Delegation::search(null, 0, 25, null, null, null, null, null, $categoryUid); + $results = Delegation::search(null, 0, 25, null, null, null, null, null, $category->CATEGORY_UID); $this->assertCount(25, $results['data']); // Get second page, which is 25 results - $results = Delegation::search(null, 25, 25, null, null, null, null, null, $categoryUid); + $results = Delegation::search(null, 25, 25, null, null, null, null, null, $category->CATEGORY_UID); $this->assertCount(25, $results['data']); // Get third page, which is only 1 result - $results = Delegation::search(null, 50, 25, null, null, null, null, null, $categoryUid); + $results = Delegation::search(null, 50, 25, null, null, null, null, null, $category->CATEGORY_UID); $this->assertCount(1, $results['data']); } /** * This ensure the result is right when you search between two given dates * + * @covers \ProcessMaker\Model\Delegation::search() * @test */ public function it_should_return_right_data_between_two_dates() { - factory(User::class, 10)->create(); - factory(Process::class, 10)->create(); - factory(Delegation::class, 10)->create(['DEL_DELEGATE_DATE' => '2019-01-02 00:00:00']); - factory(Delegation::class, 10)->create(['DEL_DELEGATE_DATE' => '2019-01-03 00:00:00']); - factory(Delegation::class, 10)->create(['DEL_DELEGATE_DATE' => '2019-01-04 00:00:00']); - factory(Delegation::class, 10)->create(['DEL_DELEGATE_DATE' => '2019-01-05 00:00:00']); + factory(Delegation::class, 10)->states('foreign_keys')->create([ + 'DEL_DELEGATE_DATE' => '2019-01-02 00:00:00' + ]); + factory(Delegation::class, 10)->states('foreign_keys')->create([ + 'DEL_DELEGATE_DATE' => '2019-01-03 00:00:00' + ]); + factory(Delegation::class, 10)->states('foreign_keys')->create([ + 'DEL_DELEGATE_DATE' => '2019-01-04 00:00:00' + ]); + factory(Delegation::class, 10)->states('foreign_keys')->create([ + 'DEL_DELEGATE_DATE' => '2019-01-05 00:00:00' + ]); $results = Delegation::search(null, 0, 25, null, null, null, null, null, null, '2019-01-02 00:00:00', '2019-01-03 00:00:00'); $this->assertCount(20, $results['data']); @@ -923,126 +587,65 @@ class DelegationTest extends TestCase /** * This ensure the result is right when you search from a given date * + * @covers \ProcessMaker\Model\Delegation::search() * @test */ - public function it_should_return_right_data_when_you_send_only_dateFrom_parameter() + public function it_should_return_right_data_with_filters_dates_parameter() { - factory(User::class, 10)->create(); - factory(Process::class, 10)->create(); - factory(Delegation::class, 10)->create(['DEL_DELEGATE_DATE' => '2019-01-02 00:00:00']); - factory(Delegation::class, 10)->create(['DEL_DELEGATE_DATE' => '2019-01-03 00:00:00']); - factory(Delegation::class, 10)->create(['DEL_DELEGATE_DATE' => '2019-01-04 00:00:00']); - factory(Delegation::class, 10)->create(['DEL_DELEGATE_DATE' => '2019-01-05 00:00:00']); - $results = Delegation::search(null, 0, 50, null, null, null, null, null, null, '2019-01-02 00:00:00', - null); + factory(Delegation::class, 10)->states('foreign_keys')->create([ + 'DEL_DELEGATE_DATE' => '2019-01-02 00:00:00' + ]); + factory(Delegation::class, 10)->states('foreign_keys')->create([ + 'DEL_DELEGATE_DATE' => '2019-01-03 00:00:00' + ]); + factory(Delegation::class, 10)->states('foreign_keys')->create([ + 'DEL_DELEGATE_DATE' => '2019-01-04 00:00:00' + ]); + factory(Delegation::class, 10)->states('foreign_keys')->create([ + 'DEL_DELEGATE_DATE' => '2019-01-05 00:00:00' + ]); + // Search setting only from + $results = Delegation::search( + null, 0, 40, null, null, null, null, null, null, '2019-01-02 00:00:00' + ); $this->assertCount(40, $results['data']); foreach ($results['data'] as $value) { $this->assertGreaterThanOrEqual('2019-01-02 00:00:00', $value['DEL_DELEGATE_DATE']); $this->assertRegExp('(\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}) ', $value['DEL_DELEGATE_DATE']); } - } - - /** - * This ensure the result is right when you search to a given date - * - * @test - */ - public function it_should_return_right_data_when_you_send_only_dateTo_parameter() - { - factory(User::class, 10)->create(); - factory(Process::class, 10)->create(); - factory(Delegation::class, 10)->create(['DEL_DELEGATE_DATE' => '2019-01-02 00:00:00']); - factory(Delegation::class, 10)->create(['DEL_DELEGATE_DATE' => '2019-01-03 00:00:00']); - factory(Delegation::class, 10)->create(['DEL_DELEGATE_DATE' => '2019-01-04 00:00:00']); - factory(Delegation::class, 10)->create(['DEL_DELEGATE_DATE' => '2019-01-05 00:00:00']); - $results = Delegation::search(null, 0, 50, null, null, null, null, null, null, null, - '2019-01-04 00:00:00'); - $this->assertCount(30, $results['data']); + // Search setting only to + $results = Delegation::search( + null, 0, 40, null, null, null, null, null, null, null, '2019-01-04 00:00:00' + ); foreach ($results['data'] as $value) { $this->assertLessThanOrEqual('2019-01-04 00:00:00', $value['DEL_DELEGATE_DATE']); $this->assertRegExp('(\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}) ', $value['DEL_DELEGATE_DATE']); } } - /** - * This ensures return the correct data by sequential - * - * @test - */ - public function it_should_return_by_sequential_tasks_pages_of_data() - { - factory(User::class)->create(); - // Create a process - $process = factory(Process::class)->create(); - $application = factory(Application::class)->create(); - // Create task - $taskNormal = factory(Task::class)->create([ - 'TAS_TYPE' => 'NORMAL' - ]); - // Create a thread with the user, process and application defined before - factory(Delegation::class)->create([ - 'PRO_ID' => $process->id, - 'TAS_ID' => $taskNormal->TAS_ID, - 'APP_NUMBER' => $application->APP_NUMBER, - 'DEL_THREAD_STATUS' => 'CLOSED', - 'DEL_INDEX' => 1 - ]); - // Define a dummy task - $taskDummy = factory(Task::class)->create([ - 'TAS_TYPE' => 'INTERMEDIATE-THROW' - ]); - // Create a thread with the dummy task this does not need a user - factory(Delegation::class)->create([ - 'PRO_ID' => $process->id, - 'USR_ID' => 0, - 'TAS_ID' => $taskDummy->TAS_ID, - 'APP_NUMBER' => $application->APP_NUMBER, - 'DEL_INDEX' => 2 - ]); - // Create a thread with the user, process and application defined before - $res = factory(Delegation::class)->create([ - 'PRO_ID' => $process->id, - 'TAS_ID' => $taskNormal->TAS_ID, - 'APP_NUMBER' => $application->APP_NUMBER, - 'DEL_THREAD_STATUS' => 'OPEN', - 'DEL_INDEX' => 3 - ]); - // Review if the thread OPEN is showed - $results = Delegation::search(null, 0, 10); - $this->assertCount(1, $results['data']); - $this->assertEquals('OPEN', $results['data'][0]['DEL_THREAD_STATUS']); - } - /** * This ensures return the correct data by parallel task all threads CLOSED * + * @covers \ProcessMaker\Model\Delegation::search() * @test */ - public function it_should_return_by_parallel_tasks_threads_closed() + public function it_should_return_empty_when_parallel_tasks_has_threads_closed() { - factory(User::class, 100)->create(); - factory(Process::class)->create(); - $task = factory(Task::class)->create([ - 'TAS_TITLE' => 'Parallel task 1' - ]); - factory(Delegation::class, 5)->create([ - 'TAS_ID' => $task->TAS_ID, + // Create a process + $process = factory(Process::class)->create(); + // Create a task + $parallelTask = factory(Task::class)->create(); + // Create a case + $application = factory(Application::class)->create(); + // Create the threads for a parallel process + factory(Delegation::class, 5)->states('foreign_keys')->create([ + 'PRO_ID' => $process->id, + 'TAS_ID' => $parallelTask->TAS_ID, + 'APP_NUMBER' => $application->APP_NUMBER, 'DEL_THREAD_STATUS' => 'CLOSED' ]); - $task = factory(Task::class)->create([ - 'TAS_TITLE' => 'Parallel task 2' - ]); - factory(Delegation::class, 5)->create([ - 'TAS_ID' => $task->TAS_ID, - 'DEL_THREAD_STATUS' => 'CLOSED' - ]); - // Get first page, the order taskTitle - $results = Delegation::search(null, 0, 2, null, null, null, 'ASC', - 'TAS_TITLE', null, null, null, 'TAS_TITLE'); - $this->assertCount(0, $results['data']); - - // Get first page, the order taskTitle - $results = Delegation::search(null, 0, 2, null, null, null, 'DESC', + // Get first page, searching for threads are closed + $results = Delegation::search(null, 0, 5, $application->APP_NUMBER, null, null, null, 'TAS_TITLE', null, null, null, 'TAS_TITLE'); $this->assertCount(0, $results['data']); } @@ -1050,84 +653,130 @@ class DelegationTest extends TestCase /** * This ensures return the correct data by parallel task all threads OPEN * + * @covers \ProcessMaker\Model\Delegation::search() * @test */ - public function it_should_return_by_parallel_tasks_threads_open() + public function it_should_return_data_when_parallel_tasks_has_threads_open() { - factory(User::class, 100)->create(); - factory(Process::class, 1)->create(); - //Create the threads - factory(Delegation::class, 5)->create([ + // Create a process + $process = factory(Process::class)->create(); + // Create a task + $parallelTask = factory(Task::class)->create(); + // Create a case + $application = factory(Application::class)->create(); + // Create the threads for a parallel process + factory(Delegation::class, 5)->states('foreign_keys')->create([ + 'PRO_ID' => $process->id, + 'TAS_ID' => $parallelTask->TAS_ID, + 'APP_NUMBER' => $application->APP_NUMBER, 'DEL_THREAD_STATUS' => 'OPEN' ]); // Get first page, all the open status $results = Delegation::search(null, 0, 5, null, null, null); $this->assertCount(5, $results['data']); - $this->assertEquals('OPEN', $results['data'][0]['DEL_THREAD_STATUS']); - $this->assertEquals('OPEN', $results['data'][4]['DEL_THREAD_STATUS']); + $this->assertEquals('OPEN', $results['data'][rand(0, 4)]['DEL_THREAD_STATUS']); + } + + /** + * This ensures return the correct data by sequential + * + * @covers \ProcessMaker\Model\Delegation::search() + * @test + */ + public function it_should_return_data_in_sequential_tasks_with_intermediate_dummy_task() + { + // Create a process + $process = factory(Process::class)->create(); + // Create a task + $parallelTask = factory(Task::class)->create(); + // Create a case + $application = factory(Application::class)->create(['APP_STATUS_ID' => 2]); + // Create the threads for a parallel process closed + factory(Delegation::class)->states('closed')->create([ + 'PRO_ID' => $process->id, + 'PRO_UID' => $process->PRO_UID, + 'TAS_ID' => $parallelTask->TAS_ID, + 'APP_NUMBER' => $application->APP_NUMBER, + 'DEL_INDEX' => 1 + ]); + // Create the threads for a parallel process closed + factory(Delegation::class)->states('open')->create([ + 'PRO_ID' => $process->id, + 'PRO_UID' => $process->PRO_UID, + 'TAS_ID' => $parallelTask->TAS_ID, + 'APP_NUMBER' => $application->APP_NUMBER, + 'DEL_INDEX' => 2 + ]); + // Get first page, searching for threads are open + $results = Delegation::search(null, 0, 5, $application->APP_NUMBER, null, null, null, null, null, null, null, + 'APP_NUMBER'); + + $this->assertCount(1, $results['data']); } /** * Review when the status is empty * + * @covers \ProcessMaker\Model\Delegation::search() * @test */ public function it_should_return_status_empty() { - factory(User::class, 100)->create(); - factory(Process::class)->create(); - $application = factory(Application::class)->create([ - 'APP_STATUS' => '' - ]); - factory(Delegation::class)->create([ - 'APP_NUMBER' => $application->APP_NUMBER + factory(Delegation::class, 5)->states('foreign_keys')->create([ + 'APP_NUMBER' => function () { + return factory(Application::class)->create(['APP_STATUS' => ''])->APP_NUMBER; + } ]); // Review the filter by status empty - $results = Delegation::search(null, 0, 25); + $results = Delegation::search(null, 0, 5, null, null, null, 'ASC', 'APP_STATUS_LABEL'); $this->assertEmpty($results['data'][0]['APP_STATUS']); } /** * Review when filter when the process and category does not have a relation * + * @covers \ProcessMaker\Model\Delegation::search() * @test */ - public function it_should_return_process_and_category_does_not_have_a_relation() + public function it_should_return_empty_when_process_and_category_does_not_have_a_relation() { - //Create a category + // Create a categories $category = factory(ProcessCategory::class, 2)->create(); - //Define a process with category - $processWithCat = factory(Process::class)->create([ - 'PRO_CATEGORY' => $category[0]->CATEGORY_UID - ]); - //Define a process without category - $processNoCategory = factory(Process::class)->create([ - 'PRO_CATEGORY' => '' - ]); - //Create a delegation related with the process with category - factory(Delegation::class)->create([ + //Create a process with category + $processWithCat = factory(Process::class)->create(['PRO_CATEGORY' => $category[0]->CATEGORY_UID]); + factory(Delegation::class)->states('foreign_keys')->create([ 'PRO_ID' => $processWithCat->id ]); - //Create a delegation related with the process without category - factory(Delegation::class)->create([ - 'PRO_ID' => $processNoCategory->id + // Create a process without category + $processWithoutCat = factory(Process::class)->create(['PRO_CATEGORY' => '']); + factory(Delegation::class, 5)->states('foreign_keys')->create([ + 'PRO_ID' => $processWithoutCat->id ]); - //Search the cases related to the category and process does not have relation + // Search the cases when the process has related to the category and search by another category $results = Delegation::search(null, 0, 25, null, $processWithCat->id, null, null, null, $category[1]->CATEGORY_UID); $this->assertCount(0, $results['data']); - //Search the cases related to the category and process does not have relation - $results = Delegation::search(null, 0, 25, null, $processNoCategory->id, null, null, null, + // Search the cases when the process has related to the category and search by this relation + $results = Delegation::search(null, 0, 25, null, $processWithCat->id, null, null, null, $category[0]->CATEGORY_UID); + $this->assertCount(1, $results['data']); + // Search the cases when the process does not have relation with category and search by a category + $results = Delegation::search(null, 0, 25, null, $processWithoutCat->id, null, null, null, + $category[1]->CATEGORY_UID); $this->assertCount(0, $results['data']); + // Search the cases when the process does not have relation with category empty + $results = Delegation::search(null, 0, 25, null, $processWithoutCat->id, null, null, null, + ''); + $this->assertCount(5, $results['data']); } /** * Review when filter when the process and category does have a relation * + * @covers \ProcessMaker\Model\Delegation::search() * @test */ - public function it_should_return_process_and_category_does_have_a_relation() + public function it_should_return_data_when_process_and_category_does_have_a_relation() { //Create a category $category = factory(ProcessCategory::class)->create(); @@ -1147,18 +796,13 @@ class DelegationTest extends TestCase factory(Delegation::class, 5)->create([ 'PRO_ID' => $process->id, ]); - //Search the cases when the category and process does have relation with a category - $results = Delegation::search(null, 0, 25, null, $processWithCat->id, null, null, null, - $category->CATEGORY_UID); - $this->assertCount(1, $results['data']); - //Search the cases when the category and process does have relation with category empty - $results = Delegation::search(null, 0, 25, null, $process->id, null, null, null, ''); - $this->assertCount(5, $results['data']); + } /** * Check if return participation information * + * @covers \ProcessMaker\Model\Delegation::getParticipatedInfo() * @test */ public function it_should_return_participation_info() @@ -1190,6 +834,7 @@ class DelegationTest extends TestCase /** * Check if return an empty participation information * + * @covers \ProcessMaker\Model\Delegation::getParticipatedInfo() * @test */ public function it_should_return_empty_participation_info() @@ -1204,7 +849,7 @@ class DelegationTest extends TestCase /** * This checks the counters is working properly in self-service user assigned * - * @covers ::countSelfService() + * @covers \ProcessMaker\Model\Delegation::countSelfService() * @test */ public function it_should_count_cases_by_user_with_self_service_user_assigned() @@ -1241,7 +886,7 @@ class DelegationTest extends TestCase * This checks the counters is working properly in self-service-value-based when the variable has a value related * with the USR_UID When the value assigned in the variable @@ARRAY_OF_USERS = [USR_UID] * - * @covers ::countSelfService() + * @covers \ProcessMaker\Model\Delegation::countSelfService() * @test */ public function it_should_count_cases_by_user_with_self_service_value_based_usr_uid() @@ -1286,7 +931,7 @@ class DelegationTest extends TestCase /** * This checks the counters is working properly in self-service and self-service value based * - * @covers ::countSelfService() + * @covers \ProcessMaker\Model\Delegation::countSelfService() * @test */ public function it_should_count_cases_by_user_with_self_service_mixed_with_self_service_value_based() @@ -1350,7 +995,7 @@ class DelegationTest extends TestCase /** * This checks the counters is working properly in self-service group assigned * - * @covers ::countSelfService() + * @covers \ProcessMaker\Model\Delegation::countSelfService() * @test */ public function it_should_count_cases_by_user_with_self_service_group_assigned() @@ -1395,7 +1040,7 @@ class DelegationTest extends TestCase * This checks the counters is working properly in self-service-value-based when the variable has a value related * with the GRP_UID When the value assigned in the variable @@ARRAY_OF_USERS = [GRP_UID] * - * @covers ::countSelfService() + * @covers \ProcessMaker\Model\Delegation::countSelfService() * @test */ public function it_should_count_cases_by_user_with_self_service_value_based_grp_uid() @@ -1453,7 +1098,7 @@ class DelegationTest extends TestCase /** * This checks the counters is working properly in self-service user and group assigned in parallel task * - * @covers ::countSelfService() + * @covers \ProcessMaker\Model\Delegation::countSelfService() * @test */ public function it_should_count_cases_by_user_with_self_service_user_and_group_assigned_parallel_task() @@ -1555,7 +1200,7 @@ class DelegationTest extends TestCase * This checks the counters is working properly in self-service-value-based with GRP_UID and USR_UID in parallel * task When the value assigned in the variable @@ARRAY_OF_USERS = [GRP_UID, USR_UID] * - * @covers ::countSelfService() + * @covers \ProcessMaker\Model\Delegation::countSelfService() * @test */ public function it_should_count_cases_by_user_with_self_service_value_based_usr_uid_and_grp_uid() @@ -1624,7 +1269,7 @@ class DelegationTest extends TestCase /** * This check if return the USR_UID assigned in the thread OPEN * - * @covers ::getCurrentUser() + * @covers \ProcessMaker\Model\Delegation::getCurrentUser() * @test */ public function it_should_return_current_user_for_thread_open() @@ -1657,7 +1302,7 @@ class DelegationTest extends TestCase /** * This check if return the USR_UID assigned in the thread CLOSED * - * @covers ::getCurrentUser() + * @covers \ProcessMaker\Model\Delegation::getCurrentUser() * @test */ public function it_should_return_current_user_for_thread_closed() @@ -1690,7 +1335,7 @@ class DelegationTest extends TestCase /** * This check if return empty when the data does not exits * - * @covers ::getCurrentUser() + * @covers \ProcessMaker\Model\Delegation::getCurrentUser() * @test */ public function it_should_return_empty_when_row_does_not_exist() @@ -1726,7 +1371,7 @@ class DelegationTest extends TestCase /** * This checks if return the open thread * - * @covers ::getOpenThreads() + * @covers \ProcessMaker\Model\Delegation::getOpenThreads() * @test */ public function it_should_return_thread_open() @@ -1753,7 +1398,7 @@ class DelegationTest extends TestCase /** * This checks if return empty when the thread is CLOSED * - * @covers ::getOpenThreads() + * @covers \ProcessMaker\Model\Delegation::getOpenThreads() * @test */ public function it_should_return_empty_when_thread_is_closed() @@ -1777,7 +1422,7 @@ class DelegationTest extends TestCase /** * This checks if return empty when the data is not null * - * @covers ::getOpenThreads() + * @covers \ProcessMaker\Model\Delegation::getOpenThreads() * @test */ public function it_should_return_empty_when_thread_finish_date_is_not_null()