improve unit tests

This commit is contained in:
Dennis Eichhorn 2018-08-31 21:14:53 +02:00
parent 9e20a90a38
commit d7ea018c02
6 changed files with 66 additions and 64 deletions

View File

@ -26,6 +26,5 @@ use phpOMS\Stdlib\Base\Enum;
*/
abstract class InstallType extends Enum
{
public const PERMISSION = 0;
public const GROUP = 1;
public const GROUP = 1;
}

View File

@ -269,67 +269,40 @@ class Installer extends InstallerAbstract
public static function installExternal(DatabasePool $dbPool, array $data) : void
{
foreach ($data as $type => $element) {
if ($type === InstallType::PERMISSION) {
self::installPermission($dbPool, $element);
} elseif ($type === InstallType::GROUP) {
if ($type === InstallType::GROUP) {
self::installGroup($dbPool, $element);
}
}
}
/**
* Install permission
*
* @param DatabasePool $dbPool Database pool
* @param array $data Data to install
*
* @return void
*
* @since 1.0.0
*/
public static function installPermission(DatabasePool $dbPool, array $data) : void
{
$sth = $dbPool->get()->con->prepare(
'INSERT INTO `' . $dbPool->get()->prefix . 'permission` (`permission_id`, `permission_name`, `permission_description`) VALUES
(:id, :pid, :name, :type, :subtype, :icon, :uri, :target, :from, :order, :parent, :perm);'
);
$sth->bindValue(':id', $data['id'] ?? 0, \PDO::PARAM_INT);
$sth->bindValue(':pid', sha1(\str_replace('/', '', $data['pid'] ?? '')), \PDO::PARAM_STR);
$sth->bindValue(':name', $data['name'] ?? '', \PDO::PARAM_STR);
$sth->bindValue(':type', $data['type'] ?? 1, \PDO::PARAM_INT);
$sth->bindValue(':subtype', $data['subtype'] ?? 2, \PDO::PARAM_INT);
$sth->execute();
$lastInsertID = $dbPool->get()->con->lastInsertId();
}
/**
* Install group
*
* @param DatabasePool $dbPool Database pool
* @param array $data Data to install
*
* @return void
* @return int
*
* @since 1.0.0
*/
public static function installGroup(DatabasePool $dbPool, array $data) : void
public static function installGroup(DatabasePool $dbPool, array $data) : int
{
$sth = $dbPool->get()->con->prepare(
'INSERT INTO `' . $dbPool->get()->prefix . 'group` (`group_id`, `group_name`, `group_description`) VALUES
(:id, :pid, :name, :type, :subtype, :icon, :uri, :target, :from, :order, :parent, :perm);'
'INSERT INTO `' . $dbPool->get()->prefix . 'group` (
`group_id`, `group_name`, `group_description`, `group_description_raw`, `group_status`, `group_created`)
VALUES (:id, :name, :desc, :desc_raw, :status, :created);'
);
$sth->bindValue(':id', $data['id'] ?? 0, \PDO::PARAM_INT);
$sth->bindValue(':pid', sha1(\str_replace('/', '', $data['pid'] ?? '')), \PDO::PARAM_STR);
$sth->bindValue(':name', $data['name'] ?? '', \PDO::PARAM_STR);
$sth->bindValue(':type', $data['type'] ?? 1, \PDO::PARAM_INT);
$sth->bindValue(':subtype', $data['subtype'] ?? 2, \PDO::PARAM_INT);
$sth->bindValue(':desc', $data['desc'] ?? '', \PDO::PARAM_STR);
$sth->bindValue(':desc_raw', $data['desc_raw'] ?? '', \PDO::PARAM_STR);
$sth->bindValue(':status', $data['status'] ?? 1, \PDO::PARAM_INT);
$sth->bindValue(':created', (new \DateTime('now'))->format('Y-m-d H:i:s'), \PDO::PARAM_STR);
$sth->execute();
$lastInsertID = $dbPool->get()->con->lastInsertId();
return $lastInsertID;
}
}

View File

@ -25,6 +25,7 @@ use Modules\Admin\Models\GroupMapper;
use Modules\Admin\Models\GroupPermissionMapper;
use Modules\Admin\Models\NullGroupPermission;
use Modules\Admin\Models\PermissionState;
use Modules\Admin\Models\ModuleStatusUpdateType;
use phpOMS\Account\AccountStatus;
use phpOMS\Account\AccountType;
@ -399,7 +400,7 @@ final class Controller extends ModuleAbstract implements WebInterface
*/
public function apiSettingsSet(RequestAbstract $request, ResponseAbstract $response, $data = null) : void
{
if (($data = $request->getData('settings')) === null) {
if ($request->getData('settings') === null) {
$data = $request->getLike('(settings_)(.*)');
} else {
$data = \json_decode((string) $request->getData('settings'), true);
@ -500,9 +501,7 @@ final class Controller extends ModuleAbstract implements WebInterface
{
$val = [];
if (($val['name'] = empty($request->getData('name')))
|| ($val['status'] = ($request->getData('status') === null
|| !GroupStatus::isValidValue((int) $request->getData('status'))
))
|| ($val['status'] = !GroupStatus::isValidValue((int) $request->getData('status')))
) {
return $val;
}
@ -638,7 +637,6 @@ final class Controller extends ModuleAbstract implements WebInterface
*/
public function apiAccountFind(RequestAbstract $request, ResponseAbstract $response, $data = null) : void
{
$response->getHeader()->set('Content-Type', MimeType::M_JSON . '; charset=utf-8', true);
$response->set(
$request->getUri()->__toString(),
\array_values(
@ -834,7 +832,7 @@ final class Controller extends ModuleAbstract implements WebInterface
public function apiModuleStatusUpdate(RequestAbstract $request, ResponseAbstract $response, $data = null) : void
{
$module = $request->getData('module');
$status = $request->getData('status');
$status = (int) $request->getData('status');
if ($module === null || $status === null) {
$response->set('module_stutus_update', null);
@ -843,25 +841,24 @@ final class Controller extends ModuleAbstract implements WebInterface
}
switch ($status) {
case 'activate':
$done = $this->app->moduleManager->activate($module);
$msg = 'Module successfully activated.';
case ModuleStatusUpdateType::ACTIVATE:
$done = $module === 'Admin' ? false : $this->app->moduleManager->activate($module);
$msg = $done ? 'Module successfully activated.' : 'Module not activated.';
break;
case 'deactivate':
$done = $this->app->moduleManager->deactivate($module);
$msg = 'Module successfully deactivated.';
case ModuleStatusUpdateType::DEACTIVATE:
$done = $module === 'Admin' ? false : $this->app->moduleManager->deactivate($module);
$msg = $done ? 'Module successfully deactivated.' : 'Module not deactivated.';
break;
case 'install':
$done = $this->app->moduleManager->install($module);
$msg = 'Module successfully installed.';
case ModuleStatusUpdateType::INSTALL:
$done = $module === 'Admin' ? false : $this->app->moduleManager->install($module);
$msg = $done ? 'Module successfully installed.' : 'Module not installed.';
break;
case 'uninstall':
//$done = $this->app->moduleManager->uninstall($module);
$done = true;
$msg = 'Module successfully uninstalled.';
case ModuleStatusUpdateType::UNINSTALL:
$done = $module === 'Admin' ? false : $this->app->moduleManager->uninstall($module);
$msg = $done ? 'Module successfully uninstalled.' : 'Module not uninstalled.';
break;
default:

View File

@ -131,11 +131,11 @@ class AccountMapper extends DataMapperAbstract
return LoginReturnType::EMPTY_PASSWORD;
}
if (\password_verify($password, $result['account_password'])) {
if (\password_verify($password, $result['account_password'] ?? '')) {
return $result['account_id'];
}
if ($result['account_password_temp'] !== '' && \password_verify($password, $result['account_password_temp'])) {
if (!empty($result['account_password_temp']) && \password_verify($password, $result['account_password_temp'] ?? '')) {
$query->update('account')->set(['account_password_temp' => ''])->where('account_login', '=', $login)->execute();
return $result['account_id'];

View File

@ -81,11 +81,11 @@ class Group extends \phpOMS\Account\Group
/**
* Get created by.
*
* @return int
* @return mixed
*
* @since 1.0.0
*/
public function getCreatedBy() : int
public function getCreatedBy()
{
return $this->createdBy;
}

View File

@ -0,0 +1,33 @@
<?php
/**
* Orange Management
*
* PHP Version 7.2
*
* @package Modules\Admin
* @copyright Dennis Eichhorn
* @license OMS License 1.0
* @version 1.0.0
* @link http://website.orange-management.de
*/
declare(strict_types=1);
namespace Modules\Admin\Models;
use phpOMS\Stdlib\Base\Enum;
/**
* Permision state enum.
*
* @package Modules\Admin
* @license OMS License 1.0
* @link http://website.orange-management.de
* @since 1.0.0
*/
abstract class ModuleStatusUpdateType extends Enum
{
public const ACTIVATE = 1;
public const DEACTIVATE = 2;
public const INSTALL = 3;
public const UNINSTALL = 4;
}