create(); factory(ProcessVariables::class)->create( [ 'PRJ_UID' => $process[0]['PRO_UID'], 'VAR_SQL' => 'SELECT * FROM USERS WHERE USR_UID="213" UNION SELECT * from PROCESS' ] ); factory(ProcessVariables::class)->create( [ 'PRJ_UID' => $process[1]['PRO_UID'], 'VAR_SQL' => '' ] ); factory(ProcessVariables::class)->create( [ 'PRJ_UID' => $process[0]['PRO_UID'], 'VAR_SQL' => '' ] ); $variablesQuery = ProcessVariables::query()->select(); $variablesQuery->process($process[0]['PRO_UID']); $result = $variablesQuery->get()->values()->toArray(); // Assert there are two process variables for the specific process $this->assertCount(2, $result); // Assert that the result has the correct filtered process $this->assertEquals($process[0]['PRO_UID'], $result[0]['PRJ_UID']); $this->assertEquals($process[0]['PRO_UID'], $result[1]['PRJ_UID']); } /** * Test it return a variable related to the VAR_UID * * @covers \ProcessMaker\Model\ProcessVariables::getVariable() * @test */ public function it_get_variable() { $table = factory(ProcessVariables::class)->create(); $result = ProcessVariables::getVariable($table->VAR_UID); $this->assertNotEmpty($result); } /** * Test it return the variables related to the PRO_ID * * @covers \ProcessMaker\Model\ProcessVariables::getVariables() * @test */ public function it_list_variables_by_process() { $process = factory(Process::class)->create(); factory(ProcessVariables::class)->create([ 'PRJ_UID' => $process->PRO_UID, 'PRO_ID' => $process->PRO_ID, ] ); $result = ProcessVariables::getVariables($process->PRO_ID); $this->assertNotEmpty($result); } /** * Test it return the variables by type related to the PRO_ID * * @covers \ProcessMaker\Model\ProcessVariables::scopeProcessId() * @covers \ProcessMaker\Model\ProcessVariables::scopeTypeId() * @covers \ProcessMaker\Model\ProcessVariables::getVariablesByType() * @test */ public function it_list_variables_type_by_process() { $process = factory(Process::class)->create(); $varType = 'integer'; $varTypeId = 2; for ($x = 1; $x <= 5; $x++) { $processVar = factory(ProcessVariables::class)->states('foreign_keys')->create([ 'PRO_ID' => $process->PRO_ID, 'PRJ_UID' => $process->PRO_UID, 'VAR_FIELD_TYPE' => $varType, 'VAR_FIELD_TYPE_ID' => $varTypeId, 'VAR_NAME' => 'varTestName' . $x, ]); } $res = ProcessVariables::getVariablesByType($processVar->PRO_ID, 2, null, null, null); $this->assertNotEmpty($res); $this->assertEquals(5, count($res)); // Get a specific start and limit $res = ProcessVariables::getVariablesByType($process->PRO_ID, 2, 0, 2); $this->assertNotEmpty($res); $this->assertEquals(2, count($res)); // Get a specific search $res = ProcessVariables::getVariablesByType($process->PRO_ID, 2, 0, 4, 'varTest'); $this->assertNotEmpty($res); $this->assertEquals(4, count($res)); // When the search does not match $res = ProcessVariables::getVariablesByType($process->PRO_ID, 2, null, null, 'other'); $this->assertEmpty($res); } }