From e3fc7d5a3237c6b5bc154483d652a392358f7c7c Mon Sep 17 00:00:00 2001 From: Laurent Giovannoni <laurent.giovannoni@maarch.org> Date: Mon, 27 Feb 2017 17:13:41 +0100 Subject: [PATCH] FEAT add unit test skell --- core/Test/StatusControllerTest.php | 132 +++++++++++++++++++++++++++++ core/Test/define.php | 65 ++++++++++++++ 2 files changed, 197 insertions(+) create mode 100644 core/Test/StatusControllerTest.php create mode 100644 core/Test/define.php diff --git a/core/Test/StatusControllerTest.php b/core/Test/StatusControllerTest.php new file mode 100644 index 00000000000..807f37550e2 --- /dev/null +++ b/core/Test/StatusControllerTest.php @@ -0,0 +1,132 @@ +<?php + +require_once __DIR__.'/define.php'; + +class StatusControllerTest extends PHPUnit_Framework_TestCase +{ + public function testGetList() + { + $action = new \Core\Controllers\StatusController(); + + $environment = \Slim\Http\Environment::mock( + [ + 'REQUEST_METHOD' => 'GET', + //'REQUEST_URI' => '/status', + //'QUERY_STRING'=>'foo=bar', + ] + ); + + $request = \Slim\Http\Request::createFromEnvironment($environment); + $response = new \Slim\Http\Response(); + $response = $action->getList($request, $response, []); + + $this->assertNotNull((string)$response->getBody()); + } + + public function testGetById() + { + $action = new \Core\Controllers\StatusController(); + + $environment = \Slim\Http\Environment::mock( + [ + 'REQUEST_METHOD' => 'GET', + ] + ); + + $aArgs = [ + 'id'=> 'NEW' + ]; + + $request = \Slim\Http\Request::createFromEnvironment($environment); + $response = new \Slim\Http\Response(); + $response = $action->getById($request, $response, $aArgs); + $compare = '[{"status":[{"id":"NEW","label_status":"Nouveau",' + . '"is_system":"Y","is_folder_status":"N","img_filename":' + . '"fm-letter-status-new","maarch_module":"apps",' + . '"can_be_searched":"Y","can_be_modified":"Y"}]}]'; + + $this->assertSame((string)$response->getBody(), $compare); + } + + public function testCreate() + { + $action = new \Core\Controllers\StatusController(); + + $query = 'id=TEST&'; + $query .= 'label_status=TEST'; + + $environment = \Slim\Http\Environment::mock( + [ + 'REQUEST_METHOD' => 'POST', + 'QUERY_STRING'=> $query, + ] + ); + + $aArgs = [ + 'id'=> 'NEW' + ]; + + $request = \Slim\Http\Request::createFromEnvironment($environment); + $response = new \Slim\Http\Response(); + $response = $action->create($request, $response, $aArgs); + + $compare = '[{"status":[{"id":"TEST","label_status":"TEST",' + . '"is_system":"Y","is_folder_status":"N","img_filename":null,' + . '"maarch_module":"apps","can_be_searched":"Y",' + . '"can_be_modified":"Y"}]}]'; + + $this->assertSame((string)$response->getBody(), $compare); + } + + public function testUpdate() + { + $action = new \Core\Controllers\StatusController(); + + $query = 'id=TEST&'; + $query .= 'label_status=TEST AFTER UP'; + + $environment = \Slim\Http\Environment::mock( + [ + 'REQUEST_METHOD' => 'PUT', + 'QUERY_STRING'=> $query, + ] + ); + + $aArgs = [ + 'id'=> 'NEW' + ]; + + $request = \Slim\Http\Request::createFromEnvironment($environment); + $response = new \Slim\Http\Response(); + $response = $action->update($request, $response, $aArgs); + + $compare = '[{"status":[{"id":"TEST","label_status":"TEST AFTER UP",' + . '"is_system":"Y","is_folder_status":"N","img_filename":null,' + . '"maarch_module":"apps","can_be_searched":"Y",' + . '"can_be_modified":"Y"}]}]'; + + $this->assertSame((string)$response->getBody(), $compare); + } + + public function testDelete() + { + $action = new \Core\Controllers\StatusController(); + + $environment = \Slim\Http\Environment::mock( + [ + 'REQUEST_METHOD' => 'DELETE', + ] + ); + + $aArgs = [ + 'id'=> 'TEST' + ]; + + $request = \Slim\Http\Request::createFromEnvironment($environment); + $response = new \Slim\Http\Response(); + $response = $action->delete($request, $response, $aArgs); + + $this->assertSame((string)$response->getBody(), '[{"status":true}]'); + } + +} \ No newline at end of file diff --git a/core/Test/define.php b/core/Test/define.php new file mode 100644 index 00000000000..5aea23a212e --- /dev/null +++ b/core/Test/define.php @@ -0,0 +1,65 @@ +<?php + +require_once 'vendor/autoload.php'; +require_once 'core/class/class_functions.php'; +include_once('core/init.php'); +require_once('core/class/class_portal.php'); +require_once('core/class/class_db.php'); +require_once('core/class/class_request.php'); +require_once('core/class/class_core_tools.php'); +require_once('core/class/web_service/class_web_service.php'); +require_once('core/services/CoreConfig.php'); + +//for auth +$_SERVER['PHP_AUTH_USER'] = 'superadmin'; +$_SERVER['PHP_AUTH_PW'] = 'superadmin'; + +//load Maarch session vars +$portal = new portal(); +$portal->unset_session(); +$portal->build_config(); +$coreTools = new core_tools(); +$_SESSION['custom_override_id'] = $coreTools->get_custom_id(); +if (isset($_SESSION['custom_override_id']) + && ! empty($_SESSION['custom_override_id']) + && isset($_SESSION['config']['corepath']) + && ! empty($_SESSION['config']['corepath']) +) { + $path = $_SESSION['config']['corepath'] . 'custom' . DIRECTORY_SEPARATOR + . $_SESSION['custom_override_id'] . DIRECTORY_SEPARATOR; + set_include_path( + $path . PATH_SEPARATOR . $_SESSION['config']['corepath'] + . PATH_SEPARATOR . get_include_path() + ); +} else if (isset($_SESSION['config']['corepath']) + && ! empty($_SESSION['config']['corepath']) +) { + set_include_path( + $_SESSION['config']['corepath'] . PATH_SEPARATOR . get_include_path() + ); +} +// Load configuration from xml into session +Core_CoreConfig_Service::buildCoreConfig('core' . DIRECTORY_SEPARATOR . 'xml' . DIRECTORY_SEPARATOR . 'config.xml'); +$_SESSION['config']['app_id'] = $_SESSION['businessapps'][0]['appid']; +require_once 'apps/' .$_SESSION['businessapps'][0]['appid']. '/class/class_business_app_tools.php'; + +Core_CoreConfig_Service::buildBusinessAppConfig(); + +// Load Modules configuration from xml into session +Core_CoreConfig_Service::loadModulesConfig($_SESSION['modules']); +Core_CoreConfig_Service::loadAppServices(); +Core_CoreConfig_Service::loadModulesServices($_SESSION['modules']); + + +//login management +require_once('apps/maarch_entreprise/class/class_login.php'); +$loginObj = new login(); +$loginMethods = $loginObj->build_login_method(); +require_once('core/services/Session.php'); +$oSessionService = new \Core_Session_Service(); +$loginObj->execute_login_script($loginMethods, true); + +if ($_SESSION['error']) { + //TODO : return http bad authent error + echo $_SESSION['error'];exit(); +} -- GitLab