From 11ec29fcdd39b259881598c24ac32d79f4bc7c7d Mon Sep 17 00:00:00 2001 From: Dennis Eichhorn Date: Thu, 28 Jan 2016 20:44:38 +0100 Subject: [PATCH] Unit test fixes --- Admin/Installer.php | 20 +++--- Models/Task.php | 122 ++++++++++++++++++++++++++++------- Models/TaskElement.php | 114 ++++++++------------------------ Models/TaskElementMapper.php | 81 +++++++++++++++++++++++ Models/TaskMapper.php | 19 ++++-- 5 files changed, 228 insertions(+), 128 deletions(-) diff --git a/Admin/Installer.php b/Admin/Installer.php index 6603f0e..c53e7b4 100644 --- a/Admin/Installer.php +++ b/Admin/Installer.php @@ -49,21 +49,20 @@ class Installer extends InstallerAbstract `task_id` int(11) NOT NULL AUTO_INCREMENT, `task_title` varchar(30) DEFAULT NULL, `task_desc` text NOT NULL, - `task_plain` text NOT NULL, `task_type` tinyint(1) NOT NULL, `task_status` tinyint(1) NOT NULL, `task_due` datetime NOT NULL, `task_done` datetime NOT NULL, - `task_creator` int(11) NOT NULL, - `task_created` datetime NOT NULL, + `task_created_by` int(11) NOT NULL, + `task_created_at` datetime NOT NULL, PRIMARY KEY (`task_id`), - KEY `task_creator` (`task_creator`) + KEY `task_creator` (`task_created_by`) )ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;' )->execute(); $dbPool->get('core')->con->prepare( 'ALTER TABLE `' . $dbPool->get('core')->prefix . 'task` - ADD CONSTRAINT `' . $dbPool->get('core')->prefix . 'task_ibfk_1` FOREIGN KEY (`task_creator`) REFERENCES `' . $dbPool->get('core')->prefix . 'account` (`account_id`);' + ADD CONSTRAINT `' . $dbPool->get('core')->prefix . 'task_ibfk_1` FOREIGN KEY (`task_created_by`) REFERENCES `' . $dbPool->get('core')->prefix . 'account` (`account_id`);' )->execute(); $dbPool->get('core')->con->prepare( @@ -89,16 +88,15 @@ class Installer extends InstallerAbstract 'CREATE TABLE if NOT EXISTS `' . $dbPool->get('core')->prefix . 'task_element` ( `task_element_id` int(11) NOT NULL AUTO_INCREMENT, `task_element_desc` text NOT NULL, - `task_element_plain` text NOT NULL, `task_element_task` int(11) NOT NULL, - `task_element_creator` int(11) NOT NULL, + `task_element_created_by` int(11) NOT NULL, `task_element_status` tinyint(1) NOT NULL, `task_element_due` datetime NOT NULL, - `task_element_forwarded` int(11) NOT NULL, - `task_element_created` datetime NOT NULL, + `task_element_forwarded` int(11) DEFAULT NULL, + `task_element_created_at` datetime NOT NULL, PRIMARY KEY (`task_element_id`), KEY `task_element_task` (`task_element_task`), - KEY `task_element_creator` (`task_element_creator`), + KEY `task_element_created_by` (`task_element_created_by`), KEY `task_element_forwarded` (`task_element_forwarded`) )ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;' )->execute(); @@ -106,7 +104,7 @@ class Installer extends InstallerAbstract $dbPool->get('core')->con->prepare( 'ALTER TABLE `' . $dbPool->get('core')->prefix . 'task_element` ADD CONSTRAINT `' . $dbPool->get('core')->prefix . 'task_element_ibfk_1` FOREIGN KEY (`task_element_task`) REFERENCES `' . $dbPool->get('core')->prefix . 'task` (`task_id`), - ADD CONSTRAINT `' . $dbPool->get('core')->prefix . 'task_element_ibfk_2` FOREIGN KEY (`task_element_creator`) REFERENCES `' . $dbPool->get('core')->prefix . 'account` (`account_id`), + ADD CONSTRAINT `' . $dbPool->get('core')->prefix . 'task_element_ibfk_2` FOREIGN KEY (`task_element_created_by`) REFERENCES `' . $dbPool->get('core')->prefix . 'account` (`account_id`), ADD CONSTRAINT `' . $dbPool->get('core')->prefix . 'task_element_ibfk_3` FOREIGN KEY (`task_element_forwarded`) REFERENCES `' . $dbPool->get('core')->prefix . 'account` (`account_id`);' )->execute(); diff --git a/Models/Task.php b/Models/Task.php index 3a9dbb9..a005914 100644 --- a/Models/Task.php +++ b/Models/Task.php @@ -35,7 +35,7 @@ class Task * @var int * @since 1.0.0 */ - private $id = null; + private $id = 0; /** * Title. @@ -51,7 +51,7 @@ class Task * @var int * @since 1.0.0 */ - private $createdBy = null; + private $createdBy = 0; /** * Created. @@ -69,14 +69,6 @@ class Task */ private $description = ''; - /** - * Plain unparsed. - * - * @var string - * @since 1.0.0 - */ - private $plain = ''; - /** * Type. * @@ -125,6 +117,8 @@ class Task */ public function __construct() { + $this->createdAt = new \DateTime('now'); + $this->due = (new \DateTime('now'))->modify('+1 day'); } /** @@ -132,20 +126,20 @@ class Task * * @param TaskElement $element Task element * - * @return bool + * @return int * * @since 1.0.0 * @author Dennis Eichhorn */ - public function addElement(TaskElement $element) : bool + public function addElement(TaskElement $element) : int { - if (!isset($this->taskElements[$element->getId()])) { - $this->taskElements[$element->getId()] = $element; + $this->taskElements[] = $element; - return true; - } + end($this->taskElements); + $key = key($this->taskElements); + reset($this->taskElements); - return false; + return $key; } /** @@ -156,7 +150,18 @@ class Task */ public function getCreatedAt() : \DateTime { - return $this->createdAt; + return $this->createdAt ?? new \DateTime(); + } + + /** + * @param \DateTime $created + * + * @since 1.0.0 + * @author Dennis Eichhorn + */ + public function setCreatedAt(\DateTime $created) + { + $this->createdAt = $created; } /** @@ -170,6 +175,17 @@ class Task return $this->createdBy; } + /** + * @param int $id + * + * @since 1.0.0 + * @author Dennis Eichhorn + */ + public function setCreatedBy(int $id) + { + $this->createdBy = $id; + } + /** * @return string * @@ -181,17 +197,39 @@ class Task return $this->description; } + /** + * @param string $description + * + * @since 1.0.0 + * @author Dennis Eichhorn + */ + public function setDescription(string $description) + { + $this->description = $description; + } + /** * @return \DateTime * * @since 1.0.0 * @author Dennis Eichhorn */ - public function getDone() : \DateTime + public function getDone() { return $this->done; } + /** + * @param \DateTime $done + * + * @since 1.0.0 + * @author Dennis Eichhorn + */ + public function setDone(\DateTime $done) + { + $this->done = $done;; + } + /** * @return \DateTime * @@ -203,6 +241,17 @@ class Task return $this->due; } + /** + * @param \DateTime $due + * + * @since 1.0.0 + * @author Dennis Eichhorn + */ + public function setDue(\DateTime $due) + { + $this->due = $due; + } + /** * @return int * @@ -215,16 +264,27 @@ class Task } /** - * @return TaskStatus + * @return int * * @since 1.0.0 * @author Dennis Eichhorn */ - public function getStatus() : TaskStatus + public function getStatus() : int { return $this->status; } + /** + * @param int $status + * + * @since 1.0.0 + * @author Dennis Eichhorn + */ + public function setStatus(int $status) + { + $this->status = $status; + } + /** * @return string * @@ -236,6 +296,17 @@ class Task return $this->title; } + /** + * @param string $title + * + * @since 1.0.0 + * @author Dennis Eichhorn + */ + public function setTitle(string $title) + { + $this->title = $title; + } + /** * Remove Element from list. * @@ -299,15 +370,16 @@ class Task } /** - * Get plain. + * Set task type. * - * @return string + * @param int $type * * @since 1.0.0 * @author Dennis Eichhorn */ - public function getPlain() : string + public function setType(\int $type) { - return $this->plain; + $this->type = $type; } + } diff --git a/Models/TaskElement.php b/Models/TaskElement.php index efc5fe9..f94ab1a 100644 --- a/Models/TaskElement.php +++ b/Models/TaskElement.php @@ -35,7 +35,7 @@ class TaskElement * @var int * @since 1.0.0 */ - private $id = null; + private $id = 0; /** * Description. @@ -59,7 +59,7 @@ class TaskElement * @var int * @since 1.0.0 */ - private $creator = 0; + private $createdBy = 0; /** * Created. @@ -67,7 +67,7 @@ class TaskElement * @var \DateTime * @since 1.0.0 */ - private $created = null; + private $createdAt = null; /** * Status. @@ -75,7 +75,7 @@ class TaskElement * @var int * @since 1.0.0 */ - private $status = null; + private $status = TaskStatus::OPEN; /** * Due. @@ -91,7 +91,7 @@ class TaskElement * @var int * @since 1.0.0 */ - private $forwarded = 0; + private $forwarded = null; /** * Constructor. @@ -101,20 +101,8 @@ class TaskElement */ public function __construct() { - } - - /** - * Init task element. - * - * @param int $id Article ID - * - * @return void - * - * @since 1.0.0 - * @author Dennis Eichhorn - */ - public function init($id) - { + $this->due = (new \DateTime('now'))->modify('+1 day'); + $this->createdAt = new \DateTime('now'); } /** @@ -123,9 +111,9 @@ class TaskElement * @since 1.0.0 * @author Dennis Eichhorn */ - public function getCreated() + public function getCreatedAt() : \DateTime { - return $this->created; + return $this->createdAt; } /** @@ -136,9 +124,9 @@ class TaskElement * @since 1.0.0 * @author Dennis Eichhorn */ - public function setCreated($created) + public function setCreatedAt(\DateTime $created) { - $this->created = $created; + $this->createdAt = $created; } /** @@ -147,9 +135,9 @@ class TaskElement * @since 1.0.0 * @author Dennis Eichhorn */ - public function getCreator() + public function getCreatedBy() : int { - return $this->creator; + return $this->createdBy; } /** @@ -160,9 +148,9 @@ class TaskElement * @since 1.0.0 * @author Dennis Eichhorn */ - public function setCreator($creator) + public function setCreatedBy(int $creator) { - $this->creator = $creator; + $this->createdBy = $creator; } /** @@ -171,7 +159,7 @@ class TaskElement * @since 1.0.0 * @author Dennis Eichhorn */ - public function getDescription() + public function getDescription() : string { return $this->description; } @@ -184,7 +172,7 @@ class TaskElement * @since 1.0.0 * @author Dennis Eichhorn */ - public function setDescription($description) + public function setDescription(string $description) { $this->description = $description; } @@ -195,7 +183,7 @@ class TaskElement * @since 1.0.0 * @author Dennis Eichhorn */ - public function getDue() + public function getDue() : \DateTime { return $this->due; } @@ -208,7 +196,7 @@ class TaskElement * @since 1.0.0 * @author Dennis Eichhorn */ - public function setDue($due) + public function setDue(\DateTime $due) { $this->due = $due; } @@ -219,9 +207,9 @@ class TaskElement * @since 1.0.0 * @author Dennis Eichhorn */ - public function getForwarded() + public function getForwarded() : int { - return $this->forwarded; + return $this->forwarded ?? 0; } /** @@ -232,7 +220,7 @@ class TaskElement * @since 1.0.0 * @author Dennis Eichhorn */ - public function setForwarded($forwarded) + public function setForwarded(int $forwarded) { $this->forwarded = $forwarded; } @@ -243,31 +231,18 @@ class TaskElement * @since 1.0.0 * @author Dennis Eichhorn */ - public function getId() + public function getId() : int { return $this->id; } - /** - * @param int $id - * - * @return void - * - * @since 1.0.0 - * @author Dennis Eichhorn - */ - public function setId($id) - { - $this->id = $id; - } - /** * @return int * * @since 1.0.0 * @author Dennis Eichhorn */ - public function getStatus() + public function getStatus() : int { return $this->status; } @@ -280,7 +255,7 @@ class TaskElement * @since 1.0.0 * @author Dennis Eichhorn */ - public function setStatus($status) + public function setStatus(int $status) { $this->status = $status; } @@ -291,7 +266,7 @@ class TaskElement * @since 1.0.0 * @author Dennis Eichhorn */ - public function getTask() + public function getTask() : int { return $this->task; } @@ -304,43 +279,8 @@ class TaskElement * @since 1.0.0 * @author Dennis Eichhorn */ - public function setTask($task) + public function setTask(int $task) { $this->task = $task; } - - /** - * {@inheritdoc} - */ - public function delete() - { - } - - /** - * {@inheritdoc} - */ - public function create() - { - } - - /** - * {@inheritdoc} - */ - public function update() - { - } - - /** - * {@inheritdoc} - */ - public function serialize() - { - } - - /** - * {@inheritdoc} - */ - public function unserialize($data) - { - } } diff --git a/Models/TaskElementMapper.php b/Models/TaskElementMapper.php index e69de29..4f5ff56 100644 --- a/Models/TaskElementMapper.php +++ b/Models/TaskElementMapper.php @@ -0,0 +1,81 @@ + + * @author Dennis Eichhorn + * @copyright 2013 Dennis Eichhorn + * @license OMS License 1.0 + * @version 1.0.0 + * @link http://orange-management.com + */ +namespace Modules\Tasks\Models; + +use phpOMS\DataStorage\Database\DataMapperAbstract; +use phpOMS\DataStorage\Database\Query\Builder; + +class TaskElementMapper extends DataMapperAbstract +{ + + /** + * Columns. + * + * @var array + * @since 1.0.0 + */ + protected static $columns = [ + 'task_element_id' => ['name' => 'task_element_id', 'type' => 'int', 'internal' => 'id'], + 'task_element_desc' => ['name' => 'task_element_desc', 'type' => 'string', 'internal' => 'description'], + 'task_element_status' => ['name' => 'task_element_status', 'type' => 'int', 'internal' => 'status'], + 'task_element_due' => ['name' => 'task_element_due', 'type' => 'DateTime', 'internal' => 'due'], + 'task_element_forwarded' => ['name' => 'task_element_forwarded', 'type' => 'int', 'internal' => 'forwarded'], + 'task_element_task' => ['name' => 'task_element_task', 'type' => 'int', 'internal' => 'task'], + 'task_element_created_by' => ['name' => 'task_element_created_by', 'type' => 'int', 'internal' => 'createdBy'], + 'task_element_created_at' => ['name' => 'task_element_created_at', 'type' => 'DateTime', 'internal' => 'createdAt'], + ]; + + /** + * Primary table. + * + * @var string + * @since 1.0.0 + */ + protected static $table = 'task_element'; + + protected static $createdAt = 'task_created_at'; + + /** + * Primary field name. + * + * @var string + * @since 1.0.0 + */ + protected static $primaryField = 'task_element_id'; + + /** + * Create media. + * + * @param Task $obj Media + * + * @return bool + * + * @since 1.0.0 + * @author Dennis Eichhorn + */ + public function create($obj) + { + try { + $objId = parent::create($obj); + } catch (\Exception $e) { + var_dump($e->getMessage()); + + return false; + } + + return $objId; + } +} diff --git a/Models/TaskMapper.php b/Models/TaskMapper.php index 0070a88..88de648 100644 --- a/Models/TaskMapper.php +++ b/Models/TaskMapper.php @@ -32,13 +32,22 @@ class TaskMapper extends DataMapperAbstract 'task_id' => ['name' => 'task_id', 'type' => 'int', 'internal' => 'id'], 'task_title' => ['name' => 'task_title', 'type' => 'string', 'internal' => 'title'], 'task_desc' => ['name' => 'task_desc', 'type' => 'string', 'internal' => 'description'], - 'task_plain' => ['name' => 'task_plain', 'type' => 'string', 'internal' => 'plain'], 'task_type' => ['name' => 'task_type', 'type' => 'int', 'internal' => 'type'], 'task_status' => ['name' => 'task_status', 'type' => 'int', 'internal' => 'status'], 'task_due' => ['name' => 'task_due', 'type' => 'DateTime', 'internal' => 'due'], 'task_done' => ['name' => 'task_done', 'type' => 'DateTime', 'internal' => 'done'], - 'task_creator' => ['name' => 'task_creator', 'type' => 'int', 'internal' => 'createdBy'], - 'task_created' => ['name' => 'task_created', 'type' => 'DateTime', 'internal' => 'createdAt'], + 'task_created_by' => ['name' => 'task_created_by', 'type' => 'int', 'internal' => 'createdBy'], + 'task_created_at' => ['name' => 'task_created_at', 'type' => 'DateTime', 'internal' => 'createdAt'], + ]; + + protected static $hasMany = [ + 'taskElements' => [ + 'mapper' => '\Modules\Tasks\Models\TaskElementMapper', + 'relationmapper' => '\Modules\Tasks\Models\TaskElementMapper', + 'table' => 'task_element', + 'dst' => 'task_element_task', + 'src' => null, + ], ]; /** @@ -49,7 +58,7 @@ class TaskMapper extends DataMapperAbstract */ protected static $table = 'task'; - protected static $createdAt = 'task_created'; + protected static $createdAt = 'task_created_at'; /** * Primary field name. @@ -92,7 +101,7 @@ class TaskMapper extends DataMapperAbstract $this->db->con->prepare($query->toSql())->execute(); } catch (\Exception $e) { - var_dump($e); + var_dump($e->getMessage()); return false; }