Skip to content
Snippets Groups Projects
Verified Commit e63d6dc4 authored by Damien's avatar Damien
Browse files

FEAT #6949 Basket administration Test

parent ec95a077
No related branches found
No related tags found
No related merge requests found
<?php
/**
* Copyright Maarch since 2008 under licence GPLv3.
* See LICENCE.txt file at the root folder for more details.
* This file is part of Maarch software.
*
*/
use PHPUnit\Framework\TestCase;
class BasketControllerTest extends TestCase
{
public function testCreate()
{
$basketController = new \Basket\controllers\BasketController();
// CREATE
$environment = \Slim\Http\Environment::mock(['REQUEST_METHOD' => 'POST']);
$request = \Slim\Http\Request::createFromEnvironment($environment);
$aArgs = [
'id' => 'TEST-BASKET123',
'name' => 'TEST-BASKET123-NAME',
'description' => 'TEST BASKET123 DESCRIPTION',
'clause' => '1=2',
'isSearchBasket' => true,
'isFolderBasket' => true,
'color' => '#123456'
];
$fullRequest = \httpRequestCustom::addContentInBody($aArgs, $request);
$response = $basketController->create($fullRequest, new \Slim\Http\Response());
$responseBody = json_decode((string)$response->getBody());
$this->assertSame('TEST-BASKET123', $responseBody->basket);
// READ
$environment = \Slim\Http\Environment::mock(['REQUEST_METHOD' => 'GET']);
$request = \Slim\Http\Request::createFromEnvironment($environment);
$response = $basketController->getById($request, new \Slim\Http\Response(), ['id' => 'TEST-BASKET123']);
$responseBody = json_decode((string)$response->getBody());
$this->assertSame('TEST-BASKET123', $responseBody->basket->basket_id);
$this->assertSame('TEST-BASKET123-NAME', $responseBody->basket->basket_name);
$this->assertSame('TEST BASKET123 DESCRIPTION', $responseBody->basket->basket_desc);
$this->assertSame('1=2', $responseBody->basket->basket_clause);
$this->assertSame('N', $responseBody->basket->is_visible);
$this->assertSame('Y', $responseBody->basket->is_folder_basket);
$this->assertSame('N', $responseBody->basket->flag_notif);
$this->assertSame('#123456', $responseBody->basket->color);
}
public function testUpdate()
{
$basketController = new \Basket\controllers\BasketController();
// UPDATE
$environment = \Slim\Http\Environment::mock(['REQUEST_METHOD' => 'PUT']);
$request = \Slim\Http\Request::createFromEnvironment($environment);
$aArgs = [
'name' => 'TEST-BASKET123-UPDATED',
'description' => 'TEST BASKET123 DESCRIPTION UPDATED',
'clause' => '1=3',
'isSearchBasket' => false,
'isFolderBasket' => false,
'flagNotif' => true,
'color' => '#111222'
];
$fullRequest = \httpRequestCustom::addContentInBody($aArgs, $request);
$response = $basketController->update($fullRequest, new \Slim\Http\Response(), ['id' => 'TEST-BASKET123']);
$responseBody = json_decode((string)$response->getBody());
$this->assertSame('success', $responseBody->success);
// READ
$environment = \Slim\Http\Environment::mock(['REQUEST_METHOD' => 'GET']);
$request = \Slim\Http\Request::createFromEnvironment($environment);
$response = $basketController->getById($request, new \Slim\Http\Response(), ['id' => 'TEST-BASKET123']);
$responseBody = json_decode((string)$response->getBody());
$this->assertSame('TEST-BASKET123', $responseBody->basket->basket_id);
$this->assertSame('TEST-BASKET123-UPDATED', $responseBody->basket->basket_name);
$this->assertSame('TEST BASKET123 DESCRIPTION UPDATED', $responseBody->basket->basket_desc);
$this->assertSame('1=3', $responseBody->basket->basket_clause);
$this->assertSame('Y', $responseBody->basket->is_visible);
$this->assertSame('N', $responseBody->basket->is_folder_basket);
$this->assertSame('Y', $responseBody->basket->flag_notif);
$this->assertSame('#111222', $responseBody->basket->color);
}
public function testCreateGroup()
{
$basketController = new \Basket\controllers\BasketController();
// CREATE
$environment = \Slim\Http\Environment::mock(['REQUEST_METHOD' => 'POST']);
$request = \Slim\Http\Request::createFromEnvironment($environment);
$aArgs = [
'group_id' => 'AGENT',
'result_page' => 'redirect_to_action',
'groupActions' => [
[
'id_action' => '112',
'where_clause' => '1=2',
'used_in_basketlist' => false,
'used_in_action_page' => false,
'default_action_list' => true,
'statuses' => [
'NEW',
'END'
],
'redirects' => [
[
'entity_id' => '',
'keyword' => 'MY_ENTITIES',
'redirect_mode' => 'ENTITY'
]
]
]
]
];
$fullRequest = \httpRequestCustom::addContentInBody($aArgs, $request);
$response = $basketController->createGroup($fullRequest, new \Slim\Http\Response(), ['id' => 'TEST-BASKET123']);
$responseBody = json_decode((string)$response->getBody());
$this->assertSame('success', $responseBody->success);
// READ
$environment = \Slim\Http\Environment::mock(['REQUEST_METHOD' => 'GET']);
$request = \Slim\Http\Request::createFromEnvironment($environment);
$response = $basketController->getGroups($request, new \Slim\Http\Response(), ['id' => 'TEST-BASKET123']);
$responseBody = json_decode((string)$response->getBody());
$this->assertSame('AGENT', $responseBody->groups[0]->group_id);
$this->assertSame('TEST-BASKET123', $responseBody->groups[0]->basket_id);
$this->assertSame('redirect_to_action', $responseBody->groups[0]->result_page);
$this->assertInternalType('array', $responseBody->groups[0]->groupActions);
$this->assertNotNull($responseBody->groups[0]->groupActions);
$this->assertSame(112, $responseBody->groups[0]->groupActions[0]->id_action);
$this->assertSame('1=2', $responseBody->groups[0]->groupActions[0]->where_clause);
$this->assertSame('N', $responseBody->groups[0]->groupActions[0]->used_in_basketlist);
$this->assertSame('N', $responseBody->groups[0]->groupActions[0]->used_in_action_page);
$this->assertSame('Y', $responseBody->groups[0]->groupActions[0]->default_action_list);
$this->assertInternalType('array', $responseBody->groups[0]->groupActions[0]->statuses);
$this->assertNotNull($responseBody->groups[0]->groupActions[0]->statuses);
$this->assertSame('NEW', $responseBody->groups[0]->groupActions[0]->statuses[0]);
$this->assertSame('END', $responseBody->groups[0]->groupActions[0]->statuses[1]);
$this->assertInternalType('array', $responseBody->groups[0]->groupActions[0]->redirects);
$this->assertNotNull($responseBody->groups[0]->groupActions[0]->redirects);
$this->assertSame('', $responseBody->groups[0]->groupActions[0]->redirects[0]->entity_id);
$this->assertSame('MY_ENTITIES', $responseBody->groups[0]->groupActions[0]->redirects[0]->keyword);
$this->assertSame('ENTITY', $responseBody->groups[0]->groupActions[0]->redirects[0]->redirect_mode);
}
public function testUpdateGroup()
{
$basketController = new \Basket\controllers\BasketController();
// CREATE
$environment = \Slim\Http\Environment::mock(['REQUEST_METHOD' => 'PUT']);
$request = \Slim\Http\Request::createFromEnvironment($environment);
$aArgs = [
'result_page' => 'list_with_attachments',
'groupActions' => [
[
'id_action' => '1',
'where_clause' => '1=1',
'used_in_basketlist' => true,
'used_in_action_page' => true,
'default_action_list' => true,
'statuses' => [
'END',
],
'redirects' => [
[
'entity_id' => '',
'keyword' => 'ALL_ENTITIES',
'redirect_mode' => 'ENTITY'
]
]
],
[
'id_action' => '4',
'where_clause' => '1=4',
'used_in_basketlist' => false,
'used_in_action_page' => true,
'default_action_list' => false,
'statuses' => [
'NEW',
'COU'
],
'redirects' => [
[
'entity_id' => 'PSO',
'keyword' => '',
'redirect_mode' => 'ENTITY'
],
[
'entity_id' => 'PSF',
'keyword' => '',
'redirect_mode' => 'USERS'
]
]
]
]
];
$fullRequest = \httpRequestCustom::addContentInBody($aArgs, $request);
$response = $basketController->updateGroup($fullRequest, new \Slim\Http\Response(), ['id' => 'TEST-BASKET123', 'groupId' => 'AGENT']);
$responseBody = json_decode((string)$response->getBody());
$this->assertSame('success', $responseBody->success);
// READ
$environment = \Slim\Http\Environment::mock(['REQUEST_METHOD' => 'GET']);
$request = \Slim\Http\Request::createFromEnvironment($environment);
$response = $basketController->getGroups($request, new \Slim\Http\Response(), ['id' => 'TEST-BASKET123']);
$responseBody = json_decode((string)$response->getBody());
$this->assertSame('AGENT', $responseBody->groups[0]->group_id);
$this->assertSame('TEST-BASKET123', $responseBody->groups[0]->basket_id);
$this->assertSame('list_with_attachments', $responseBody->groups[0]->result_page);
$this->assertInternalType('array', $responseBody->groups[0]->groupActions);
$this->assertNotNull($responseBody->groups[0]->groupActions);
$this->assertSame(1, $responseBody->groups[0]->groupActions[0]->id_action);
$this->assertSame('1=1', $responseBody->groups[0]->groupActions[0]->where_clause);
$this->assertSame('Y', $responseBody->groups[0]->groupActions[0]->used_in_basketlist);
$this->assertSame('Y', $responseBody->groups[0]->groupActions[0]->used_in_action_page);
$this->assertSame('Y', $responseBody->groups[0]->groupActions[0]->default_action_list);
$this->assertInternalType('array', $responseBody->groups[0]->groupActions[0]->statuses);
$this->assertNotNull($responseBody->groups[0]->groupActions[0]->statuses);
$this->assertSame('END', $responseBody->groups[0]->groupActions[0]->statuses[0]);
$this->assertInternalType('array', $responseBody->groups[0]->groupActions[0]->redirects);
$this->assertNotNull($responseBody->groups[0]->groupActions[0]->redirects);
$this->assertSame('', $responseBody->groups[0]->groupActions[0]->redirects[0]->entity_id);
$this->assertSame('ALL_ENTITIES', $responseBody->groups[0]->groupActions[0]->redirects[0]->keyword);
$this->assertSame('ENTITY', $responseBody->groups[0]->groupActions[0]->redirects[0]->redirect_mode);
$this->assertSame(4, $responseBody->groups[0]->groupActions[1]->id_action);
$this->assertSame('1=4', $responseBody->groups[0]->groupActions[1]->where_clause);
$this->assertSame('N', $responseBody->groups[0]->groupActions[1]->used_in_basketlist);
$this->assertSame('Y', $responseBody->groups[0]->groupActions[1]->used_in_action_page);
$this->assertSame('N', $responseBody->groups[0]->groupActions[1]->default_action_list);
$this->assertInternalType('array', $responseBody->groups[0]->groupActions[1]->statuses);
$this->assertNotNull($responseBody->groups[0]->groupActions[1]->statuses);
$this->assertSame('NEW', $responseBody->groups[0]->groupActions[1]->statuses[0]);
$this->assertSame('COU', $responseBody->groups[0]->groupActions[1]->statuses[1]);
$this->assertInternalType('array', $responseBody->groups[0]->groupActions[1]->redirects);
$this->assertNotNull($responseBody->groups[0]->groupActions[1]->redirects);
$this->assertSame('PSO', $responseBody->groups[0]->groupActions[1]->redirects[0]->entity_id);
$this->assertSame('', $responseBody->groups[0]->groupActions[1]->redirects[0]->keyword);
$this->assertSame('ENTITY', $responseBody->groups[0]->groupActions[1]->redirects[0]->redirect_mode);
$this->assertSame('PSF', $responseBody->groups[0]->groupActions[1]->redirects[1]->entity_id);
$this->assertSame('', $responseBody->groups[0]->groupActions[1]->redirects[1]->keyword);
$this->assertSame('USERS', $responseBody->groups[0]->groupActions[1]->redirects[1]->redirect_mode);
}
public function testDeleteGroup()
{
$basketController = new \Basket\controllers\BasketController();
// DELETE
$environment = \Slim\Http\Environment::mock(['REQUEST_METHOD' => 'DELETE']);
$request = \Slim\Http\Request::createFromEnvironment($environment);
$response = $basketController->deleteGroup($request, new \Slim\Http\Response(), ['id' => 'TEST-BASKET123', 'groupId' => 'AGENT']);
$responseBody = json_decode((string)$response->getBody());
$this->assertSame('success', $responseBody->success);
// READ
$environment = \Slim\Http\Environment::mock(['REQUEST_METHOD' => 'GET']);
$request = \Slim\Http\Request::createFromEnvironment($environment);
$response = $basketController->getGroups($request, new \Slim\Http\Response(), ['id' => 'TEST-BASKET123']);
$responseBody = json_decode((string)$response->getBody());
$this->assertEmpty($responseBody->groups);
}
public function testGetDataForGroup()
{
$basketController = new \Basket\controllers\BasketController();
// GET
$environment = \Slim\Http\Environment::mock(['REQUEST_METHOD' => 'GET']);
$request = \Slim\Http\Request::createFromEnvironment($environment);
$response = $basketController->getDataForGroupById($request, new \Slim\Http\Response(), ['id' => 'TEST-BASKET123']);
$responseBody = json_decode((string)$response->getBody());
$this->assertInternalType('array', $responseBody->groups);
$this->assertNotNull($responseBody->groups);
$this->assertInternalType('array', $responseBody->pages);
$this->assertNotNull($responseBody->pages);
$this->assertInternalType('array', $responseBody->actions);
$this->assertNotNull($responseBody->actions);
}
public function testGet()
{
$basketController = new \Basket\controllers\BasketController();
// GET
$environment = \Slim\Http\Environment::mock(['REQUEST_METHOD' => 'GET']);
$request = \Slim\Http\Request::createFromEnvironment($environment);
$response = $basketController->get($request, new \Slim\Http\Response());
$responseBody = json_decode((string)$response->getBody());
$this->assertInternalType('array', $responseBody->baskets);
$this->assertNotNull($responseBody->baskets);
}
public function testDelete()
{
$basketController = new \Basket\controllers\BasketController();
// DELETE
$environment = \Slim\Http\Environment::mock(['REQUEST_METHOD' => 'DELETE']);
$request = \Slim\Http\Request::createFromEnvironment($environment);
$response = $basketController->delete($request, new \Slim\Http\Response(), ['id' => 'TEST-BASKET123']);
$responseBody = json_decode((string)$response->getBody());
$this->assertInternalType('array', $responseBody->baskets);
// READ
$environment = \Slim\Http\Environment::mock(['REQUEST_METHOD' => 'GET']);
$request = \Slim\Http\Request::createFromEnvironment($environment);
$response = $basketController->getById($request, new \Slim\Http\Response(), ['id' => 'TEST-BASKET123']);
$responseBody = json_decode((string)$response->getBody());
$this->assertSame('Basket not found', $responseBody->errors);
}
}
...@@ -20,6 +20,7 @@ require_once('core/services/CoreConfig.php'); ...@@ -20,6 +20,7 @@ require_once('core/services/CoreConfig.php');
//for auth //for auth
$_SERVER['PHP_AUTH_USER'] = 'superadmin'; $_SERVER['PHP_AUTH_USER'] = 'superadmin';
$_SERVER['PHP_AUTH_PW'] = 'superadmin'; $_SERVER['PHP_AUTH_PW'] = 'superadmin';
$userId = 'superadmin';
//load Maarch session vars //load Maarch session vars
$portal = new portal(); $portal = new portal();
......
...@@ -9,6 +9,7 @@ ...@@ -9,6 +9,7 @@
<file>core/Test/ResExtControllerTest.php</file--> <file>core/Test/ResExtControllerTest.php</file-->
<file>core/Test/StatusControllerTest.php</file> <file>core/Test/StatusControllerTest.php</file>
<file>core/Test/UserControllerTest.php</file> <file>core/Test/UserControllerTest.php</file>
<file>core/Test/BasketControllerTest.php</file>
<!--file>modules/convert/Test/ProcessConvertTest.php</file--> <!--file>modules/convert/Test/ProcessConvertTest.php</file-->
<!--file>modules/convert/Test/ProcessFulltextTest.php</file--> <!--file>modules/convert/Test/ProcessFulltextTest.php</file-->
</testsuite> </testsuite>
...@@ -16,6 +17,7 @@ ...@@ -16,6 +17,7 @@
<filter> <filter>
<whitelist> <whitelist>
<directory suffix="Test.php">core/Test</directory> <directory suffix="Test.php">core/Test</directory>
<directory suffix=".php">src</directory>
<directory suffix=".php">core/Controllers</directory> <directory suffix=".php">core/Controllers</directory>
<directory suffix=".php">core/Models</directory> <directory suffix=".php">core/Models</directory>
<directory suffix=".php">apps/maarch_entreprise/Models</directory> <directory suffix=".php">apps/maarch_entreprise/Models</directory>
...@@ -27,7 +29,6 @@ ...@@ -27,7 +29,6 @@
<directory suffix=".php">modules/attachments/Models</directory> <directory suffix=".php">modules/attachments/Models</directory>
<directory suffix=".php">modules/entities/Controllers</directory> <directory suffix=".php">modules/entities/Controllers</directory>
<directory suffix=".php">modules/entities/Models</directory> <directory suffix=".php">modules/entities/Models</directory>
<directory suffix=".php">modules/basket/Models</directory>
<directory suffix=".php">modules/notes/Models</directory> <directory suffix=".php">modules/notes/Models</directory>
<directory suffix=".php">modules/convert/Controllers</directory> <directory suffix=".php">modules/convert/Controllers</directory>
<directory suffix=".php">modules/convert/Models</directory> <directory suffix=".php">modules/convert/Models</directory>
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment