Skip to content
Snippets Groups Projects
Commit 8c46310d authored by Florian Azizian's avatar Florian Azizian
Browse files

refactoring rookies + debut conf sonar

parent 4ac8fa0c
No related branches found
No related tags found
No related merge requests found
......@@ -12,7 +12,7 @@
"require": {
"slim/slim": "^3",
"respect/validation": "^1.1",
"guzzlehttp/guzzle": "~6.0"
"guzzlehttp/guzzle": "^6.2",
"m4tthumphrey/php-gitlab-api": "dev-master"
}
}
<?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.
*
*/
/**
* @brief Parameters Controller
* @author dev@maarch.org
* @ingroup core
*/
namespace Core\Controllers;
use Psr\Http\Message\RequestInterface;
......@@ -28,15 +41,15 @@ use Core\Models\ParametersModel;
}
public function create(RequestInterface $request, ResponseInterface $response)
{
$datas = $request->getParams();
$errors = $this->control($request, 'create',$datas);
$errors = $this->control($request, 'create');
if (!empty($errors)) {
return $response
->withJson(['errors' => $errors]);
}
$datas = $request->getQueryParams();
$return = ParametersModel::create($datas);
if ($return) {
......@@ -52,18 +65,17 @@ use Core\Models\ParametersModel;
return $response->withJson($obj);
}
public function update(RequestInterface $request, ResponseInterface $response, $aArgs)
public function update(RequestInterface $request, ResponseInterface $response)
{
$datas = $request->getParams();
$errors = $this->control($request, 'update',$datas);
$errors = $this->control($request, 'update');
if (!empty($errors)) {
return $response
->withJson(['errors' => $errors]);
}
$return = ParametersModel::update($datas);
$aArgs = $request->getQueryParams();
$return = ParametersModel::update($aArgs);
if ($return) {
$obj = ParametersModel::getById([
......@@ -84,14 +96,14 @@ use Core\Models\ParametersModel;
return $response->withJson($obj);
}
protected function control($request, $mode, $aArgs)
protected function control($request, $mode)
{
$errors = [];
if ($mode == 'update') {
$obj = ParametersModel::getById([
'id' => $aArgs['id'],
'param_value_int' => $aArgs['param_value_int']
'id' => $request->getParam('id'),
'param_value_int' => $request->getParam('param_value_int')
]);
if (empty($obj)) {
array_push(
......@@ -101,7 +113,7 @@ use Core\Models\ParametersModel;
}
}
if (!Validator::notEmpty()->validate($aArgs['id'])) {
if (!Validator::notEmpty()->validate($request->getParam('id'))) {
array_push($errors, '_ID_IS_EMPTY_CONTROLLER');
} elseif ($mode == 'create') {
if(!Validator::regex('/^[\w.-]*$/')->validate($request->getParam('id'))){
......@@ -114,7 +126,7 @@ use Core\Models\ParametersModel;
array_push($errors,'PARAM STRING INVALIDE');
}
$obj = ParametersModel::getById([
'id' => $aArgs['id']
'id' => $request->getParam('id')
]);
if (!empty($obj)) {
array_push(
......@@ -123,17 +135,17 @@ use Core\Models\ParametersModel;
);
}
}
if ($aArgs['param_value_date']!=null) {
if (date('Y-m-d H:i:s', strtotime($aArgs['param_value_date'])) != $aArgs['param_value_date']) {
if ($request->getParam('param_value_date')!=null) {
if (date('Y-m-d H:i:s', strtotime($request->getParam('param_value_date'))) != $request->getParam('param_value_date')) {
array_push(
$errors,
'PARAMETRE DATE INVALIDE.'
);
}
}
if ($mode=='create'&&!Validator::notEmpty()->validate($aArgs['param_value_int'])&&
!Validator::notEmpty()->validate($aArgs['param_value_string'])&&
!Validator::notEmpty()->validate($aArgs['param_value_date'])
if ($mode=='create'&&!Validator::notEmpty()->validate($request->getParam('param_value_int'))&&
!Validator::notEmpty()->validate($request->getParam('param_value_string'))&&
!Validator::notEmpty()->validate($request->getParam('param_value_date'))
) {
array_push($errors, '_PARAM_VALUE_IS_EMPTY');
}
......@@ -142,5 +154,3 @@ use Core\Models\ParametersModel;
}
}
?>
\ No newline at end of file
<?php
namespace MaarchTest;
/**
* 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.
*
*/
require_once __DIR__.'/define.php';
namespace MaarchTest;
class ParametersControllerTest extends \PHPUnit_Framework_TestCase
{
require_once __DIR__.'/define.php';
public function testCreate()
{
$aArgs = [
'id'=> 'TEST',
'description' => null,
'param_value_string' => 'abcd',
'param_value_int' => null,
'param_value_date' => null
];
$client = new \GuzzleHttp\Client([
'base_uri' => 'http://127.0.0.1/maarch_courrier/cs_Maarch/rest/parameters',
// You can set any number of default request options.
'timeout' => 2.0,
]);
$response = $client->request('POST', 'http://127.0.0.1/maarch_courrier/cs_Maarch/rest/parameters', [
'auth'=> ['superadmin','superadmin'],
'form_params' => $aArgs
]);
class ParametersControllerTest extends \PHPUnit_Framework_TestCase
{
$compare = '[{"id":"TEST","description":null,'
. '"param_value_string":"abcd","param_value_int":null,"param_value_date":null}]';
$this->assertSame($compare,(string)$response->getBody());
//TEST EXISTE DEJA
$aArgs = [
'id'=> 'TEST',
'description' => null,
'param_value_string' => null,
'param_value_int' => 1234,
'param_value_date' => null
];
$client = new \GuzzleHttp\Client([
'base_uri' => 'http://127.0.0.1/maarch_courrier/cs_Maarch/rest/parameters',
// You can set any number of default request options.
'timeout' => 2.0,
]);
$response = $client->request('POST', 'http://127.0.0.1/maarch_courrier/cs_Maarch/rest/parameters', [
'auth'=> ['superadmin','superadmin'],
'form_params' => $aArgs
public function testCreate()
{
$query = 'id=TEST&';
$query .= 'param_value_string=abcd&';
$query .= 'description=papa';
$environment = \Slim\Http\Environment::mock(
[
'REQUEST_METHOD' => 'POST',
'QUERY_STRING' => $query,
]
);
$parameter = new \Core\Controllers\ParametersController();
$response = $parameter->create(\Slim\Http\Request::createFromEnvironment($environment), new \Slim\Http\Response());
$compare = '[{"id":"TEST",'
.'"description":"papa",'
.'"param_value_string":"abcd",'
.'"param_value_int":null,'
.'"param_value_date":null}]';
$this->assertSame($compare,(string)$response->getBody());
$client = new \GuzzleHttp\Client([
'base_uri' => $_SESSION['config']['coreurl'] . 'rest/parameters',
// You can set any number of default request options.
'timeout' => 2.0,
]);
//TEST EXISTE DEJA
$aArgs = [
'id' => 'TEST',
'description' => null,
'param_value_string' => null,
'param_value_int' => 1234,
'param_value_date' => null
];
$response = $client->request('POST', $_SESSION['config']['coreurl'] . 'rest/parameters', [
'auth' => ['superadmin','superadmin'],
'form_params' => $aArgs
]);
$compare = '{"errors":["Identifiant TEST existe d\u00e9j\u00e0 !"]}';
$this->assertSame($compare,(string)$response->getBody());
$compare = '{"errors":["Identifiant TEST existe d\u00e9j\u00e0 !"]}';
$this->assertSame($compare,(string)$response->getBody());
//AUCUN PARAMETRE
$aArgs = [
'id'=> 'TEST3',
'description' => null,
'param_value_string' => null,
'param_value_int' => null,
'param_value_date' => null
];
$client = new \GuzzleHttp\Client([
'base_uri' => 'http://127.0.0.1/maarch_courrier/cs_Maarch/rest/parameters',
// You can set any number of default request options.
'timeout' => 2.0,
]);
$response = $client->request('POST', 'http://127.0.0.1/maarch_courrier/cs_Maarch/rest/parameters', [
'auth'=> ['superadmin','superadmin'],
'form_params' => $aArgs
]);
//AUCUN PARAMETRE
$aArgs = [
'id' => 'TEST3',
'description' => null,
'param_value_string' => null,
'param_value_int' => null,
'param_value_date' => null
];
$response = $client->request('POST', $_SESSION['config']['coreurl'] . 'rest/parameters', [
'auth' => ['superadmin','superadmin'],
'form_params' => $aArgs
]);
$compare = '{"errors":["_PARAM_VALUE_IS_EMPTY"]}';
$this->assertSame($compare,(string)$response->getBody());
//AUCUN ARGUMENTS
$aArgs = [ ];
$client = new \GuzzleHttp\Client([
'base_uri' => 'http://127.0.0.1/maarch_courrier/cs_Maarch/rest/parameters',
// You can set any number of default request options.
'timeout' => 2.0,
]);
$response = $client->request('POST', 'http://127.0.0.1/maarch_courrier/cs_Maarch/rest/parameters', [
'auth'=> ['superadmin','superadmin'],
'form_params' => $aArgs
]);
$compare = '{"errors":["_PARAM_VALUE_IS_EMPTY"]}';
$this->assertSame($compare,(string)$response->getBody());
$compare = '{"errors":["_ID_IS_EMPTY_CONTROLLER","_PARAM_VALUE_IS_EMPTY"]}';
//AUCUN ARGUMENTS
$aArgs = [ ];
$this->assertSame($compare,(string)$response->getBody());
$response = $client->request('POST', $_SESSION['config']['coreurl'] . 'rest/parameters', [
'auth' => ['superadmin','superadmin'],
'form_params' => $aArgs
]);
//DATE MAUVAIS FORMAT
$compare = '{"errors":["_ID_IS_EMPTY_CONTROLLER","_PARAM_VALUE_IS_EMPTY"]}';
$aArgs = [
'id'=> 'TEST4',
'description' => null,
'param_value_string' => null,
'param_value_int' => null,
'param_value_date' => '123456'
];
$this->assertSame($compare,(string)$response->getBody());
$client = new \GuzzleHttp\Client([
'base_uri' => 'http://127.0.0.1/maarch_courrier/cs_Maarch/rest/parameters',
// You can set any number of default request options.
'timeout' => 2.0,
]);
$response = $client->request('POST', 'http://127.0.0.1/maarch_courrier/cs_Maarch/rest/parameters', [
'auth'=> ['superadmin','superadmin'],
'form_params' => $aArgs
]);
//DATE MAUVAIS FORMAT
$compare ='{"errors":["PARAMETRE DATE INVALIDE."]}';
$this->assertSame($compare,(string)$response->getBody());
$aArgs = [
'id' => 'TEST4',
'description' => null,
'param_value_string' => null,
'param_value_int' => null,
'param_value_date' => '123456'
];
//TEST ID MAUVAIS FORMAT (REGEX)
$response = $client->request('POST', $_SESSION['config']['coreurl'] . 'rest/parameters', [
'auth' => ['superadmin','superadmin'],
'form_params' => $aArgs
]);
$aArgs = [
'id'=> 'A*-#==',
'description' => "*///*//",
'param_value_string' => "//-//**",
'param_value_int' => null,
'param_value_date' => null
];
$compare = '{"errors":["PARAMETRE DATE INVALIDE."]}';
$this->assertSame($compare,(string)$response->getBody());
$response = $client->request('POST', 'http://127.0.0.1/maarch_courrier/cs_Maarch/rest/parameters', [
'auth'=> ['superadmin','superadmin'],
'form_params' => $aArgs
]);
//TEST ID MAUVAIS FORMAT (REGEX)
$compare ='{"errors":["ID INVALIDE","DESCRIPTION INVALIDE","PARAM STRING INVALIDE"]}';
$this->assertSame($compare,(string)$response->getBody());
}
public function testGetList()
{
$client = new \GuzzleHttp\Client([
'base_uri' => 'http://127.0.0.1/maarch_courrier/cs_Maarch/rest/parameters',
// You can set any number of default request options.
'timeout' => 2.0,
]);
$response = $client->request('GET', 'http://127.0.0.1/maarch_courrier/cs_Maarch/rest/parameters', [
'auth'=> ['superadmin','superadmin']
]);
$aArgs = [
'id' => 'A*-#==',
'description' => "*///*//",
'param_value_string' => "//-//**",
'param_value_int' => null,
'param_value_date' => null
];
$this->assertNotNull($response->getBody());
}
public function testGetById()
{
$aArgs = [
'id'=> 'TEST'
];
$client = new \GuzzleHttp\Client([
'base_uri' => 'http://127.0.0.1/maarch_courrier/cs_Maarch/rest/parameters',
// You can set any number of default request options.
'timeout' => 2.0,
]);
$response = $client->request('GET', 'http://127.0.0.1/maarch_courrier/cs_Maarch/rest/parameters/'.$aArgs['id'], [
'auth'=> ['superadmin','superadmin']
]);
$compare = '[[{"id":"TEST",'
.'"description":null,'
.'"param_value_string":"abcd",'
.'"param_value_int":null,'
.'"param_value_date":null}]]';
$this->assertNotNull((string)$response->getBody());
}
public function testUpdate()
{
$aArgs = [
'id'=> 'TEST',
'description' =>'TEST AFTER UP'
];
$client = new \GuzzleHttp\Client([
'base_uri' => 'http://127.0.0.1/maarch_courrier/cs_Maarch/rest/parameters',
// You can set any number of default request options.
'timeout' => 2.0,
]);
$response = $client->request('PUT', 'http://127.0.0.1/maarch_courrier/cs_Maarch/rest/parameters/'.$aArgs['id'], [
'auth'=> ['superadmin','superadmin'],
'form_params' => $aArgs
$response = $client->request('POST', $_SESSION['config']['coreurl'] . 'rest/parameters', [
'auth' => ['superadmin','superadmin'],
'form_params' => $aArgs
]);
$compare ='{"errors":["ID INVALIDE","DESCRIPTION INVALIDE","PARAM STRING INVALIDE"]}';
$this->assertSame($compare,(string)$response->getBody());
}
public function testGetList()
{
$parameters = new \Core\Controllers\ParametersController();
$environment = \Slim\Http\Environment::mock(
[
'REQUEST_METHOD' => 'GET',
]
);
$request = \Slim\Http\Request::createFromEnvironment($environment);
$response = new \Slim\Http\Response();
$response = $parameters->getList($request, $response);
$this->assertNotNull((string)$response->getBody());
}
public function testGetById()
{
$aArgs = [
'id' => 'TEST'
];
$client = new \GuzzleHttp\Client([
'base_uri' => $_SESSION['config']['coreurl'] . 'rest/parameters',
// You can set any number of default request options.
'timeout' => 2.0,
]);
$response = $client->request('GET', $_SESSION['config']['coreurl'] . 'rest/parameters/'.$aArgs['id'], [
'auth'=> ['superadmin','superadmin']
]);
$compare = '[[{"id":"TEST",'
.'"description":null,'
.'"param_value_string":"abcd",'
.'"param_value_int":null,'
.'"param_value_date":null}]]';
$this->assertNotNull((string)$response->getBody());
}
public function testUpdate()
{
$query = 'id=TEST&';
$query .= 'description=TEST AFTER UP';
$environment = \Slim\Http\Environment::mock(
[
'REQUEST_METHOD' => 'PUT',
'QUERY_STRING' => $query,
]
);
$parameter = new \Core\Controllers\ParametersController();
$response = $parameter->update(\Slim\Http\Request::createFromEnvironment($environment), new \Slim\Http\Response());
$compare = '[{"id":"TEST",'
.'"description":"TEST AFTER UP",'
.'"param_value_string":"abcd",'
.'"param_value_int":null,'
.'"param_value_date":null}]';
$this->assertSame($compare,(string)$response->getBody());
//TEST ID NULL
$aArgs = [
'id'=> 'NEW'
];
$client = new \GuzzleHttp\Client([
'base_uri' => 'http://127.0.0.1/maarch_courrier/cs_Maarch/rest/parameters',
// You can set any number of default request options.
'timeout' => 2.0,
]);
$response = $client->request('PUT', 'http://127.0.0.1/maarch_courrier/cs_Maarch/rest/parameters/'.$aArgs['id'], [
'auth'=> ['superadmin','superadmin'],
'form_params' => $aArgs
$this->assertSame((string)$response->getBody(), $compare);
//TEST ID NULL
$client = new \GuzzleHttp\Client([
'base_uri' => $_SESSION['config']['coreurl'] . 'rest/parameters',
// You can set any number of default request options.
'timeout' => 2.0,
]);
$compare = '{"errors":["Identifiant n\'existe pas"]}';
$this->assertSame($compare,(string)$response->getBody());
$aArgs = [
'id' => 'NEW'
];
$response = $client->request('PUT', $_SESSION['config']['coreurl'] . 'rest/parameters/'.$aArgs['id'], [
'auth' => ['superadmin','superadmin'],
'form_params' => $aArgs
]);
$compare = '{"errors":["Identifiant n\'existe pas"]}';
}
public function testDelete()
{
$aArgs = [
'id'=> 'TEST'
];
$client = new \GuzzleHttp\Client([
'base_uri' => 'http://127.0.0.1/maarch_courrier/cs_Maarch/rest/parameters',
// You can set any number of default request options.
'timeout' => 2.0,
]);
$response = $client->request('DELETE', 'http://127.0.0.1/maarch_courrier/cs_Maarch/rest/parameters/'.$aArgs['id'], [
'auth'=> ['superadmin','superadmin'],
'form_params' => $aArgs
$this->assertSame($compare,(string)$response->getBody());
}
public function testDelete()
{
$aArgs = [
'id'=> 'TEST'
];
$client = new \GuzzleHttp\Client([
'base_uri' => $_SESSION['config']['coreurl'] . 'rest/parameters',
// You can set any number of default request options.
'timeout' => 2.0,
]);
$compare='true';
$this->assertSame($compare,(string)$response->getBody());
}
$response = $client->request('DELETE', $_SESSION['config']['coreurl'] . 'rest/parameters/'.$aArgs['id'], [
'auth' => ['superadmin','superadmin'],
'form_params' => $aArgs
]);
$compare = 'true';
$this->assertSame($compare,(string)$response->getBody());
}
}
?>
\ No newline at end of file
......@@ -57,6 +57,10 @@ Core_CoreConfig_Service::loadModulesConfig($_SESSION['modules']);
Core_CoreConfig_Service::loadAppServices();
Core_CoreConfig_Service::loadModulesServices($_SESSION['modules']);
$folderRootName = str_replace("\\","/", dirname(__file__));
$folderRootName = str_replace('/core/Test', '', $folderRootName);
$folderRootName = substr($folderRootName, strrpos($folderRootName, "/")+1);
$_SESSION['config']['coreurl'] = 'http://localhost/' . $folderRootName . '/';
//login management
require_once('apps/maarch_entreprise/class/class_login.php');
......
......@@ -14,6 +14,7 @@
</filter>
<logging>
<log type="coverage-clover" target="core/Test/build/tests-clover.xml"/>
<log type="junit" target="core/Test/build/tests-phpunit.xml" logIncompleteSkipped="false"/>
<log type="coverage-html" target="core/Test/build" lowUpperBound="35" highLowerBound="70"/>
</logging>
</phpunit>
......
# must be unique in a given SonarQube instance
sonar.projectKey=my:project
# this is the name and version displayed in the SonarQube UI. Was mandatory prior to SonarQube 6.1.
sonar.projectName=Maarch 17.XX Rookies
sonar.projectVersion=1.0
# Path is relative to the sonar-project.properties file. Replace "\" by "/" on Windows.
# This property is optional if sonar.modules is set.
sonar.sources=.
# Encoding of the source code. Default is default system encoding
#sonar.sourceEncoding=UTF-8
sonar.exclusions=node_modules/**/* , vendor/**/* , custom/**/* , sql/** , apps/maarch_entreprise/tools/**/* , core/Test/**/*
sonar.tests=core/Test/build
sonar.php.tests.reportPath=core/Test/build/tests-phpunit.xml
sonar.php.coverage.reportPath=core/Test/build/tests-clover.xml
#sonar.coverage.exclusions=apps/maarch_entreprise/**/*.php , core/**/*.php , modules/**/*.php
\ No newline at end of file
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