diff --git a/tests/unit/workflow/engine/src/ProcessMaker/BusinessModel/Cases/HomeTest.php b/tests/unit/workflow/engine/src/ProcessMaker/BusinessModel/Cases/HomeTest.php index 09a0a724b..b6eb9bd06 100644 --- a/tests/unit/workflow/engine/src/ProcessMaker/BusinessModel/Cases/HomeTest.php +++ b/tests/unit/workflow/engine/src/ProcessMaker/BusinessModel/Cases/HomeTest.php @@ -45,6 +45,7 @@ class HomeTest extends TestCase /** * This test the getDraft method. * @test + * @covers \ProcessMaker\BusinessModel\Cases\Home::getUserId() * @covers \ProcessMaker\BusinessModel\Cases\Home::getDraft() */ public function it_should_test_getDraft() @@ -346,10 +347,10 @@ class HomeTest extends TestCase 'CAL_COLUMNS' => '[{"field":"case_number","enableFilter":false,"set":true},{"field":"case_title","enableFilter":false,"set":true},{"field":"process_name","enableFilter":false,"set":true},{"field":"task","enableFilter":false,"set":true},{"field":"send_by","enableFilter":false,"set":true},{"field":"due_date","enableFilter":false,"set":true},{"field":"delegation_date","enableFilter":false,"set":true},{"field":"priority","enableFilter":false,"set":true},{"field":"VAR1","enableFilter":false,"set":true},{"field":"VAR2","enableFilter":false,"set":true},{"field":"VAR3","enableFilter":false,"set":false}]', 'ADD_TAB_UID' => $additionalTables->ADD_TAB_UID ]); - $arguments = [$caseList->CAL_ID, 0, 0, 0, 0, 15, 0, '', '', 'APP_NUMBER,DESC']; + $arguments = [$caseList->CAL_ID, 0, 0, 0, 0, 15, 0, '', '', '', '', 'APP_NUMBER,DESC']; $home = new Home($application->APP_INIT_USER); - $result = $home->getCustomDraft(...$arguments); + $result = $home->getCustomInbox(...$arguments); $this->assertArrayHasKey('data', $result); $this->assertArrayHasKey('total', $result); @@ -425,10 +426,10 @@ class HomeTest extends TestCase 'CAL_COLUMNS' => '[{"field":"case_number","enableFilter":false,"set":true},{"field":"case_title","enableFilter":false,"set":true},{"field":"process_name","enableFilter":false,"set":true},{"field":"task","enableFilter":false,"set":true},{"field":"send_by","enableFilter":false,"set":true},{"field":"due_date","enableFilter":false,"set":true},{"field":"delegation_date","enableFilter":false,"set":true},{"field":"priority","enableFilter":false,"set":true},{"field":"VAR1","enableFilter":false,"set":true},{"field":"VAR2","enableFilter":false,"set":true},{"field":"VAR3","enableFilter":false,"set":false}]', 'ADD_TAB_UID' => $additionalTables->ADD_TAB_UID ]); - $arguments = [$caseList->CAL_ID, 0, 0, 0, 0, 15, 0, '', '', 'APP_NUMBER,DESC']; + $arguments = [$caseList->CAL_ID, 0, 0, 0, 0, 15, 0, '', '', '', '', 'APP_NUMBER,DESC']; $home = new Home($application->APP_INIT_USER); - $result = $home->getCustomDraft(...$arguments); + $result = $home->getCustomUnassigned(...$arguments); $this->assertArrayHasKey('data', $result); $this->assertArrayHasKey('total', $result); @@ -524,10 +525,10 @@ class HomeTest extends TestCase 'CAL_COLUMNS' => '[{"field":"case_number","enableFilter":false,"set":true},{"field":"case_title","enableFilter":false,"set":true},{"field":"process_name","enableFilter":false,"set":true},{"field":"task","enableFilter":false,"set":true},{"field":"send_by","enableFilter":false,"set":true},{"field":"due_date","enableFilter":false,"set":true},{"field":"delegation_date","enableFilter":false,"set":true},{"field":"priority","enableFilter":false,"set":true},{"field":"VAR1","enableFilter":false,"set":true},{"field":"VAR2","enableFilter":false,"set":true},{"field":"VAR3","enableFilter":false,"set":false}]', 'ADD_TAB_UID' => $additionalTables->ADD_TAB_UID ]); - $arguments = [$caseList->CAL_ID, 0, 0, 0, 0, 15, 0, '', '', 'APP_NUMBER,DESC']; + $arguments = [$caseList->CAL_ID, 0, 0, 0, 0, 15, 0, '', '', '', '', 'APP_NUMBER,DESC']; $home = new Home($application1->APP_INIT_USER); - $result = $home->getCustomDraft(...$arguments); + $result = $home->getCustomPaused(...$arguments); $this->assertArrayHasKey('data', $result); $this->assertArrayHasKey('total', $result); diff --git a/tests/unit/workflow/engine/src/ProcessMaker/BusinessModel/Cases/SearchTest.php b/tests/unit/workflow/engine/src/ProcessMaker/BusinessModel/Cases/SearchTest.php index 8ababa0be..3daf93c8f 100644 --- a/tests/unit/workflow/engine/src/ProcessMaker/BusinessModel/Cases/SearchTest.php +++ b/tests/unit/workflow/engine/src/ProcessMaker/BusinessModel/Cases/SearchTest.php @@ -33,7 +33,7 @@ class SearchTest extends TestCase * * @param int * - * @return array + * @return object */ public function createSearch($rows = 10) { @@ -258,6 +258,48 @@ class SearchTest extends TestCase $this->assertNotEmpty($result); } + /** + * It tests the getData with user + * + * @covers \ProcessMaker\BusinessModel\Cases\Search::getData() + * @covers \ProcessMaker\BusinessModel\Cases\Search::getColumnsView() + * @covers \ProcessMaker\BusinessModel\Cases\Search::filters() + * @covers \ProcessMaker\BusinessModel\Cases\Search::setUserStartedId() + * @test + */ + public function it_filter_by_user_started() + { + // Create factories related to the delegation cases + $cases = $this->createSearch(); + // Create new Search object + $search = new Search(); + $search->setUserStartedId($cases[0]->USR_ID); + $result = $search->getData(); + // Asserts with the result + $this->assertEmpty($result); + } + + /** + * It tests the getData with user completed + * + * @covers \ProcessMaker\BusinessModel\Cases\Search::getData() + * @covers \ProcessMaker\BusinessModel\Cases\Search::getColumnsView() + * @covers \ProcessMaker\BusinessModel\Cases\Search::filters() + * @covers \ProcessMaker\BusinessModel\Cases\Search::setUserCompletedId() + * @test + */ + public function it_filter_by_user_completed() + { + // Create factories related to the delegation cases + $cases = $this->createSearch(); + // Create new Search object + $search = new Search(); + $search->setUserCompletedId($cases[0]->USR_ID); + $result = $search->getData(); + // Asserts with the result + $this->assertNotEmpty($result); + } + /** * It tests the getData with setStartCaseFrom and setStartCaseTo * @@ -353,8 +395,6 @@ class SearchTest extends TestCase */ public function it_get_counter() { - // Create factories related to the delegation cases - $cases = $this->createSearch(); // Create new Search object $search = new Search(); $total = $search->getCounter(); @@ -362,6 +402,21 @@ class SearchTest extends TestCase $this->assertEquals($total, 0); } + /** + * It tests the getCounter method + * + * @covers \ProcessMaker\BusinessModel\Cases\Search::atLeastOne() + * @test + */ + public function it_get_at_least_one() + { + // Create new Search object + $search = new Search(); + $res = $search->atLeastOne(); + // The count for search was disabled for performance issues + $this->assertFalse($res); + } + /** * It tests the getPagingCounters method * @@ -371,8 +426,6 @@ class SearchTest extends TestCase */ public function it_should_test_the_counter_for_search() { - // Create factories related to the delegation cases - $cases = $this->createSearch(); // Create new Search object $search = new Search(); $total = $search->getPagingCounters(); diff --git a/workflow/engine/src/ProcessMaker/BusinessModel/Cases/Search.php b/workflow/engine/src/ProcessMaker/BusinessModel/Cases/Search.php index 6d435df02..ffe2f7fca 100644 --- a/workflow/engine/src/ProcessMaker/BusinessModel/Cases/Search.php +++ b/workflow/engine/src/ProcessMaker/BusinessModel/Cases/Search.php @@ -85,8 +85,13 @@ class Search extends AbstractCases $query->joinDelegation(); // Add the filter $query->userId($this->getUserId()); - // Get only the open threads related to the user - $query->where('APP_DELEGATION.DEL_THREAD_STATUS', '=', 'OPEN'); + // Get only the open threads related to the user or the last index + $query->where(function ($query) { + $query->where('APP_DELEGATION.DEL_THREAD_STATUS', 'OPEN'); + $query->orWhere(function ($query) { + $query->where('APP_DELEGATION.DEL_LAST_INDEX', '1'); + }); + }); } // Filter by user who started if ($this->getUserStartedId()) { @@ -108,8 +113,13 @@ class Search extends AbstractCases } // Add the filter $query->task($this->getTaskId()); - // Get only the open threads related to the task - $query->where('APP_DELEGATION.DEL_THREAD_STATUS', '=', 'OPEN'); + // Get only the open threads related to the task or the last index + $query->where(function ($query) { + $query->where('APP_DELEGATION.DEL_THREAD_STATUS', 'OPEN'); + $query->orWhere(function ($query) { + $query->where('APP_DELEGATION.DEL_LAST_INDEX', '1'); + }); + }); } // Specific start case date from if (!empty($this->getStartCaseFrom())) {