Files
luos/tests/unit/workflow/engine/controllers/DesignerTest.php
2019-09-04 12:31:37 -04:00

102 lines
3.0 KiB
PHP

<?php
namespace Tests\unit\workflow\engine\controllers;
use Designer;
use G;
use ProcessMaker\Model\Application;
use ProcessMaker\Model\Process;
use Tests\TestCase;
class DesignerTest extends TestCase
{
/**
* Tests that the Designer::index() method is not throwing an exception
*
* @test
*/
public function it_should_test_that_the_index_method_is_not_throwing_an_exception()
{
//Create the process factory
$process = factory(Process::class)->create();
//Create the application factory
$application = factory(Application::class)->create(
[
'APP_PIN' => G::encryptOld('LJ5W'),
]
);
//Start the session for the user logged
session_start();
$_SESSION['CASE'] = $application->APP_NUMBER;
$_SESSION['PIN'] = "LJ5W";
$_SESSION['USER_LOGGED'] = '00000000000000000000000000000001';
session_commit();
//Create the data sent to the tracker request
$httpData = (object)[
"prj_uid" => $process->PRO_UID,
"prj_readonly" => "true",
"app_uid" => $application->APP_UID,
"tracker_designer" => "1"
];
//Create the Designer object
$object = new Designer();
//Turn on output buffering
ob_start();
//Call the index method
$object->index($httpData);
//Get current buffer contents and delete current output buffer in $res variable
$res = ob_get_clean();
//Assert the result does not have errors
$this->assertNotContains('Call to a member function getUsrUid() on null', $res);
$this->assertNotContains('Uncaught TypeError: Argument 2 passed to Illumincate\Routing\UrlGenerator::_construct() must be an instance of Illuminate\Http\Request, null given',
$res);
}
/**
* Tests the Designer::index() method when the user logged is empty
*
* @test
*/
public function it_should_test_the_index_method_when_the_user_logged_is_empty()
{
//Create the process factory
$process = factory(Process::class)->create();
//Create the application factory
$application = factory(Application::class)->create(
[
'APP_PIN' => G::encryptOld('LJ5W'),
]
);
$_SESSION['CASE'] = $application->APP_NUMBER;
$_SESSION['PIN'] = "LJ5W";
session_commit();
//Create the data sent to the tracker request
$httpData = (object)[
"prj_uid" => $process->PRO_UID,
"prj_readonly" => "true",
"app_uid" => $application->APP_UID,
"tracker_designer" => "1"
];
//Create the Designer object
$object = new Designer();
//An exception is expected if the user logged is empty
$this->expectExceptionMessage("Local Authentication Error, user session is not started.");
//Call the index method
$object->index($httpData);
}
}