Skip to content
Snippets Groups Projects
Verified Commit 610175d3 authored by Florian Azizian's avatar Florian Azizian
Browse files

FEAT #7737 TU admin docmodel

parent 1cba61f1
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 TemplateControllerTest extends TestCase
{
private static $id = null;
private static $idDuplicated = null;
public function testCreate()
{
$templates = new \Template\controllers\TemplateController();
// CREATE
$environment = \Slim\Http\Environment::mock(['REQUEST_METHOD' => 'POST']);
$request = \Slim\Http\Request::createFromEnvironment($environment);
$aArgs = [
'template_label' => 'TEST TEMPLATE',
'template_comment' => 'DESCRIPTION OF THIS TEMPLATE',
'template_target' => 'sendmail',
'template_attachment_type' => 'all',
'template_type' => 'HTML',
'template_content' => 'Content of this template',
'template_datasource' => 'letterbox_attachment',
'entities' => ['DGS', 'COU']
];
$fullRequest = \httpRequestCustom::addContentInBody($aArgs, $request);
$response = $templates->create($fullRequest, new \Slim\Http\Response());
$responseBody = json_decode((string)$response->getBody());
self::$id = $responseBody->template;
$this->assertInternalType("int", self::$id);
// CREATE FAIL
$request = \Slim\Http\Request::createFromEnvironment($environment);
$aArgs = [
'template_label' => '',
'template_comment' => '',
'template_target' => 'sendmail',
'template_attachment_type' => 'all',
'template_type' => 'HTML',
'template_content' => 'Content of this template',
'template_datasource' => 'letterbox_attachment'
];
$fullRequest = \httpRequestCustom::addContentInBody($aArgs, $request);
$response = $templates->create($fullRequest, new \Slim\Http\Response());
$responseBody = json_decode((string)$response->getBody());
$this->assertSame('Bad Request', $responseBody->errors);
}
public function testRead()
{
$templates = new \Template\controllers\TemplateController();
// READ
$environment = \Slim\Http\Environment::mock(['REQUEST_METHOD' => 'GET']);
$request = \Slim\Http\Request::createFromEnvironment($environment);
$response = $templates->getDetailledById($request, new \Slim\Http\Response(), ['id' => self::$id]);
$responseBody = json_decode((string)$response->getBody());
$this->assertInternalType('int', $responseBody->template->template_id);
$this->assertSame('TEST TEMPLATE', $responseBody->template->template_label);
$this->assertSame('DESCRIPTION OF THIS TEMPLATE', $responseBody->template->template_comment);
$this->assertSame('sendmail', $responseBody->template->template_target);
$this->assertSame('all', $responseBody->template->template_attachment_type);
$this->assertSame('HTML', $responseBody->template->template_type);
$this->assertSame('Content of this template', $responseBody->template->template_content);
$this->assertSame('letterbox_attachment', $responseBody->template->template_datasource);
$this->assertNotNull($responseBody->templatesModels);
$this->assertNotNull($responseBody->templatesModels[0]->fileName);
$this->assertNotNull($responseBody->templatesModels[0]->fileExt);
$this->assertNotNull($responseBody->templatesModels[0]->filePath);
$this->assertNotNull($responseBody->attachmentTypes);
$this->assertNotNull($responseBody->attachmentTypes[0]->label);
$this->assertNotNull($responseBody->attachmentTypes[0]->id);
$this->assertNotNull($responseBody->datasources);
$this->assertNotNull($responseBody->datasources[0]->id);
$this->assertNotNull($responseBody->datasources[0]->label);
$this->assertNotNull($responseBody->datasources[0]->script);
$this->assertNotNull($responseBody->datasources[0]->target);
$this->assertNotNull($responseBody->entities);
$this->assertNotNull($responseBody->entities[0]->entity_id);
$this->assertNotNull($responseBody->entities[0]->entity_label);
// READ FAIL
$environment = \Slim\Http\Environment::mock(['REQUEST_METHOD' => 'GET']);
$request = \Slim\Http\Request::createFromEnvironment($environment);
$response = $templates->getDetailledById($request, new \Slim\Http\Response(), ['id' => '11119999']);
$responseBody = json_decode((string)$response->getBody());
$this->assertSame('Template does not exist', $responseBody->errors);
}
public function testUpdate()
{
$templates = new \Template\controllers\TemplateController();
########## UPDATE ##########
$environment = \Slim\Http\Environment::mock(['REQUEST_METHOD' => 'POST']);
$request = \Slim\Http\Request::createFromEnvironment($environment);
$aArgs = [
'template_label' => 'TEST TEMPLATE UPDATE',
'template_comment' => 'DESCRIPTION OF THIS TEMPLATE UPDATE',
'template_target' => 'sendmail',
'template_attachment_type' => 'all',
'template_type' => 'HTML',
'template_content' => 'Content of this template',
'template_datasource' => 'letterbox_attachment',
'entities' => []
];
$fullRequest = \httpRequestCustom::addContentInBody($aArgs, $request);
$response = $templates->update($fullRequest, new \Slim\Http\Response(), ['id' => self::$id]);
$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 = $templates->getDetailledById($request, new \Slim\Http\Response(), ['id' => self::$id]);
$responseBody = json_decode((string)$response->getBody());
$this->assertInternalType('int', $responseBody->template->template_id);
$this->assertSame('TEST TEMPLATE UPDATE', $responseBody->template->template_label);
$this->assertSame('DESCRIPTION OF THIS TEMPLATE UPDATE', $responseBody->template->template_comment);
$this->assertSame('sendmail', $responseBody->template->template_target);
$this->assertSame('all', $responseBody->template->template_attachment_type);
$this->assertSame('HTML', $responseBody->template->template_type);
$this->assertSame('Content of this template', $responseBody->template->template_content);
$this->assertSame('letterbox_attachment', $responseBody->template->template_datasource);
########## UPDATE FAIL MISSING PARAMETERS ##########
$environment = \Slim\Http\Environment::mock(['REQUEST_METHOD' => 'POST']);
$request = \Slim\Http\Request::createFromEnvironment($environment);
$aArgs = [
'template_label' => '',
'template_comment' => '',
'template_target' => 'sendmail',
'template_attachment_type' => 'all',
'template_type' => 'HTML',
'template_content' => 'Content of this template',
'template_datasource' => 'letterbox_attachment',
'entities' => []
];
$fullRequest = \httpRequestCustom::addContentInBody($aArgs, $request);
$response = $templates->update($fullRequest, new \Slim\Http\Response(), ['id' => self::$id]);
$responseBody = json_decode((string)$response->getBody());
$this->assertSame("Bad Request", $responseBody->errors);
########## UPDATE FAIL WRONG ID ##########
$environment = \Slim\Http\Environment::mock(['REQUEST_METHOD' => 'POST']);
$request = \Slim\Http\Request::createFromEnvironment($environment);
$aArgs = [
'template_label' => '',
'template_comment' => '',
'template_target' => 'sendmail',
'template_attachment_type' => 'all',
'template_type' => 'HTML',
'template_content' => 'Content of this template',
'template_datasource' => 'letterbox_attachment',
'entities' => []
];
$fullRequest = \httpRequestCustom::addContentInBody($aArgs, $request);
$response = $templates->update($fullRequest, new \Slim\Http\Response(), ['id' => '1235789']);
$responseBody = json_decode((string)$response->getBody());
$this->assertSame('Template does not exist', $responseBody->errors);
}
public function testDuplicate()
{
$templates = new \Template\controllers\TemplateController();
########## DUPLICATE ##########
$environment = \Slim\Http\Environment::mock(['REQUEST_METHOD' => 'POST']);
$request = \Slim\Http\Request::createFromEnvironment($environment);
$response = $templates->duplicate($request, new \Slim\Http\Response(), ['id' => self::$id]);
$responseBody = json_decode((string)$response->getBody());
self::$idDuplicated = $responseBody->id;
$this->assertInternalType("int", self::$idDuplicated);
// READ
$environment = \Slim\Http\Environment::mock(['REQUEST_METHOD' => 'GET']);
$request = \Slim\Http\Request::createFromEnvironment($environment);
$response = $templates->getDetailledById($request, new \Slim\Http\Response(), ['id' => self::$idDuplicated]);
$responseBody = json_decode((string)$response->getBody());
$this->assertInternalType('int', $responseBody->template->template_id);
$this->assertSame('Copie de TEST TEMPLATE UPDATE', $responseBody->template->template_label);
$this->assertSame('DESCRIPTION OF THIS TEMPLATE UPDATE', $responseBody->template->template_comment);
$this->assertSame('sendmail', $responseBody->template->template_target);
$this->assertSame('all', $responseBody->template->template_attachment_type);
$this->assertSame('HTML', $responseBody->template->template_type);
$this->assertSame('Content of this template', $responseBody->template->template_content);
$this->assertSame('letterbox_attachment', $responseBody->template->template_datasource);
########## DUPLICATE FAIL ##########
$environment = \Slim\Http\Environment::mock(['REQUEST_METHOD' => 'POST']);
$request = \Slim\Http\Request::createFromEnvironment($environment);
$response = $templates->duplicate($request, new \Slim\Http\Response(), ['id' => 139875323456]);
$responseBody = json_decode((string)$response->getBody());
$this->assertSame('Template not found', $responseBody->errors);
}
public function testGetList()
{
$templates = new \Template\controllers\TemplateController();
// READ
$environment = \Slim\Http\Environment::mock(['REQUEST_METHOD' => 'GET']);
$request = \Slim\Http\Request::createFromEnvironment($environment);
$response = $templates->get($request, new \Slim\Http\Response());
$responseBody = json_decode((string)$response->getBody());
$idFound = false;
$idDuplicatedFound = false;
foreach ($responseBody->templates as $template) {
$this->assertInternalType('int', $template->template_id);
$this->assertNotNull($template->template_label);
$this->assertNotNull($template->template_comment);
$this->assertNotNull($template->template_type);
if ($template->template_id == self::$id) {
$idFound = true;
}
if ($template->template_id == self::$idDuplicated) {
$idDuplicatedFound = true;
}
}
$this->assertSame(true, $idFound);
$this->assertSame(true, $idDuplicatedFound);
}
public function testDelete()
{
$templates = new \Template\controllers\TemplateController();
########## DELETE ##########
$environment = \Slim\Http\Environment::mock(['REQUEST_METHOD' => 'DELETE']);
$request = \Slim\Http\Request::createFromEnvironment($environment);
$response = $templates->delete($request, new \Slim\Http\Response(), ['id' => self::$id]);
$responseBody = json_decode((string)$response->getBody());
$this->assertSame("success", $responseBody->success);
########## DELETE DUPLICATED ##########
$environment = \Slim\Http\Environment::mock(['REQUEST_METHOD' => 'DELETE']);
$request = \Slim\Http\Request::createFromEnvironment($environment);
$response = $templates->delete($request, new \Slim\Http\Response(), ['id' => self::$idDuplicated]);
$responseBody = json_decode((string)$response->getBody());
$this->assertSame("success", $responseBody->success);
########## DELETE FAIL ##########
$environment = \Slim\Http\Environment::mock(['REQUEST_METHOD' => 'DELETE']);
$request = \Slim\Http\Request::createFromEnvironment($environment);
$response = $templates->delete($request, new \Slim\Http\Response(), ['id' => '8928191923']);
$responseBody = json_decode((string)$response->getBody());
$this->assertSame('Template does not exist', $responseBody->errors);
}
public function testInitTemplate()
{
$templates = new \Template\controllers\TemplateController();
$environment = \Slim\Http\Environment::mock(['REQUEST_METHOD' => 'GET']);
$request = \Slim\Http\Request::createFromEnvironment($environment);
$response = $templates->initTemplates($request, new \Slim\Http\Response());
$responseBody = json_decode((string)$response->getBody());
$this->assertNotNull($responseBody->templatesModels);
$this->assertNotNull($responseBody->templatesModels[0]->fileName);
$this->assertNotNull($responseBody->templatesModels[0]->fileExt);
$this->assertNotNull($responseBody->templatesModels[0]->filePath);
$this->assertNotNull($responseBody->attachmentTypes);
$this->assertNotNull($responseBody->attachmentTypes[0]->label);
$this->assertNotNull($responseBody->attachmentTypes[0]->id);
$this->assertNotNull($responseBody->datasources);
$this->assertNotNull($responseBody->datasources[0]->id);
$this->assertNotNull($responseBody->datasources[0]->label);
$this->assertNotNull($responseBody->datasources[0]->script);
$this->assertNotNull($responseBody->datasources[0]->target);
$this->assertNotNull($responseBody->entities);
$this->assertNotNull($responseBody->entities[0]->entity_id);
$this->assertNotNull($responseBody->entities[0]->entity_label);
}
}
......@@ -21,7 +21,7 @@ class httpRequestCustom
$json = json_encode($aArgs);
$stream = fopen('php://memory', 'r+');
fputs($stream, $json);
fputs($stream, $json);
rewind($stream);
$httpStream = new \Slim\Http\Stream($stream);
$request = $request->withBody($httpStream);
......
......@@ -24,6 +24,7 @@
<file>core/Test/UserControllerTest.php</file>
<file>core/Test/VersionUpdateControllerTest.php</file>
<file>core/Test/CoreControllerTest.php</file>
<file>core/Test/TemplateControllerTest.php</file>
<!--<file>modules/convert/Test/ProcessConvertTest.php</file>-->
<!--<file>modules/convert/Test/ProcessFulltextTest.php</file>-->
<!--<file>modules/convert/Test/ProcessManageConvertTest.php</file>-->
......
......@@ -59,6 +59,9 @@ class TemplateController
}
$template = TemplateModel::getById(['id' => $aArgs['id']]);
if (empty($template)) {
return $response->withStatus(400)->withJson(['errors' => 'Template does not exist']);
}
$rawLinkedEntities = TemplateAssociationModel::get(['select' => ['value_field'], 'where' => ['template_id = ?'], 'data' => [$template['template_id']]]);
$linkedEntities = [];
......
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