Unit test fixes

This commit is contained in:
Dennis Eichhorn 2016-01-28 20:44:38 +01:00
parent 8d5d933339
commit 11ec29fcdd
5 changed files with 228 additions and 128 deletions

View File

@ -49,21 +49,20 @@ class Installer extends InstallerAbstract
`task_id` int(11) NOT NULL AUTO_INCREMENT, `task_id` int(11) NOT NULL AUTO_INCREMENT,
`task_title` varchar(30) DEFAULT NULL, `task_title` varchar(30) DEFAULT NULL,
`task_desc` text NOT NULL, `task_desc` text NOT NULL,
`task_plain` text NOT NULL,
`task_type` tinyint(1) NOT NULL, `task_type` tinyint(1) NOT NULL,
`task_status` tinyint(1) NOT NULL, `task_status` tinyint(1) NOT NULL,
`task_due` datetime NOT NULL, `task_due` datetime NOT NULL,
`task_done` datetime NOT NULL, `task_done` datetime NOT NULL,
`task_creator` int(11) NOT NULL, `task_created_by` int(11) NOT NULL,
`task_created` datetime NOT NULL, `task_created_at` datetime NOT NULL,
PRIMARY KEY (`task_id`), PRIMARY KEY (`task_id`),
KEY `task_creator` (`task_creator`) KEY `task_creator` (`task_created_by`)
)ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;' )ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;'
)->execute(); )->execute();
$dbPool->get('core')->con->prepare( $dbPool->get('core')->con->prepare(
'ALTER TABLE `' . $dbPool->get('core')->prefix . 'task` '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(); )->execute();
$dbPool->get('core')->con->prepare( $dbPool->get('core')->con->prepare(
@ -89,16 +88,15 @@ class Installer extends InstallerAbstract
'CREATE TABLE if NOT EXISTS `' . $dbPool->get('core')->prefix . 'task_element` ( 'CREATE TABLE if NOT EXISTS `' . $dbPool->get('core')->prefix . 'task_element` (
`task_element_id` int(11) NOT NULL AUTO_INCREMENT, `task_element_id` int(11) NOT NULL AUTO_INCREMENT,
`task_element_desc` text NOT NULL, `task_element_desc` text NOT NULL,
`task_element_plain` text NOT NULL,
`task_element_task` int(11) 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_status` tinyint(1) NOT NULL,
`task_element_due` datetime NOT NULL, `task_element_due` datetime NOT NULL,
`task_element_forwarded` int(11) NOT NULL, `task_element_forwarded` int(11) DEFAULT NULL,
`task_element_created` datetime NOT NULL, `task_element_created_at` datetime NOT NULL,
PRIMARY KEY (`task_element_id`), PRIMARY KEY (`task_element_id`),
KEY `task_element_task` (`task_element_task`), 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`) KEY `task_element_forwarded` (`task_element_forwarded`)
)ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;' )ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;'
)->execute(); )->execute();
@ -106,7 +104,7 @@ class Installer extends InstallerAbstract
$dbPool->get('core')->con->prepare( $dbPool->get('core')->con->prepare(
'ALTER TABLE `' . $dbPool->get('core')->prefix . 'task_element` '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_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`);' ADD CONSTRAINT `' . $dbPool->get('core')->prefix . 'task_element_ibfk_3` FOREIGN KEY (`task_element_forwarded`) REFERENCES `' . $dbPool->get('core')->prefix . 'account` (`account_id`);'
)->execute(); )->execute();

View File

@ -35,7 +35,7 @@ class Task
* @var int * @var int
* @since 1.0.0 * @since 1.0.0
*/ */
private $id = null; private $id = 0;
/** /**
* Title. * Title.
@ -51,7 +51,7 @@ class Task
* @var int * @var int
* @since 1.0.0 * @since 1.0.0
*/ */
private $createdBy = null; private $createdBy = 0;
/** /**
* Created. * Created.
@ -69,14 +69,6 @@ class Task
*/ */
private $description = ''; private $description = '';
/**
* Plain unparsed.
*
* @var string
* @since 1.0.0
*/
private $plain = '';
/** /**
* Type. * Type.
* *
@ -125,6 +117,8 @@ class Task
*/ */
public function __construct() 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 * @param TaskElement $element Task element
* *
* @return bool * @return int
* *
* @since 1.0.0 * @since 1.0.0
* @author Dennis Eichhorn <d.eichhorn@oms.com> * @author Dennis Eichhorn <d.eichhorn@oms.com>
*/ */
public function addElement(TaskElement $element) : bool public function addElement(TaskElement $element) : int
{ {
if (!isset($this->taskElements[$element->getId()])) { $this->taskElements[] = $element;
$this->taskElements[$element->getId()] = $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 public function getCreatedAt() : \DateTime
{ {
return $this->createdAt; return $this->createdAt ?? new \DateTime();
}
/**
* @param \DateTime $created
*
* @since 1.0.0
* @author Dennis Eichhorn <d.eichhorn@oms.com>
*/
public function setCreatedAt(\DateTime $created)
{
$this->createdAt = $created;
} }
/** /**
@ -170,6 +175,17 @@ class Task
return $this->createdBy; return $this->createdBy;
} }
/**
* @param int $id
*
* @since 1.0.0
* @author Dennis Eichhorn <d.eichhorn@oms.com>
*/
public function setCreatedBy(int $id)
{
$this->createdBy = $id;
}
/** /**
* @return string * @return string
* *
@ -181,17 +197,39 @@ class Task
return $this->description; return $this->description;
} }
/**
* @param string $description
*
* @since 1.0.0
* @author Dennis Eichhorn <d.eichhorn@oms.com>
*/
public function setDescription(string $description)
{
$this->description = $description;
}
/** /**
* @return \DateTime * @return \DateTime
* *
* @since 1.0.0 * @since 1.0.0
* @author Dennis Eichhorn <d.eichhorn@oms.com> * @author Dennis Eichhorn <d.eichhorn@oms.com>
*/ */
public function getDone() : \DateTime public function getDone()
{ {
return $this->done; return $this->done;
} }
/**
* @param \DateTime $done
*
* @since 1.0.0
* @author Dennis Eichhorn <d.eichhorn@oms.com>
*/
public function setDone(\DateTime $done)
{
$this->done = $done;;
}
/** /**
* @return \DateTime * @return \DateTime
* *
@ -203,6 +241,17 @@ class Task
return $this->due; return $this->due;
} }
/**
* @param \DateTime $due
*
* @since 1.0.0
* @author Dennis Eichhorn <d.eichhorn@oms.com>
*/
public function setDue(\DateTime $due)
{
$this->due = $due;
}
/** /**
* @return int * @return int
* *
@ -215,16 +264,27 @@ class Task
} }
/** /**
* @return TaskStatus * @return int
* *
* @since 1.0.0 * @since 1.0.0
* @author Dennis Eichhorn <d.eichhorn@oms.com> * @author Dennis Eichhorn <d.eichhorn@oms.com>
*/ */
public function getStatus() : TaskStatus public function getStatus() : int
{ {
return $this->status; return $this->status;
} }
/**
* @param int $status
*
* @since 1.0.0
* @author Dennis Eichhorn <d.eichhorn@oms.com>
*/
public function setStatus(int $status)
{
$this->status = $status;
}
/** /**
* @return string * @return string
* *
@ -236,6 +296,17 @@ class Task
return $this->title; return $this->title;
} }
/**
* @param string $title
*
* @since 1.0.0
* @author Dennis Eichhorn <d.eichhorn@oms.com>
*/
public function setTitle(string $title)
{
$this->title = $title;
}
/** /**
* Remove Element from list. * Remove Element from list.
* *
@ -299,15 +370,16 @@ class Task
} }
/** /**
* Get plain. * Set task type.
* *
* @return string * @param int $type
* *
* @since 1.0.0 * @since 1.0.0
* @author Dennis Eichhorn <d.eichhorn@oms.com> * @author Dennis Eichhorn <d.eichhorn@oms.com>
*/ */
public function getPlain() : string public function setType(\int $type)
{ {
return $this->plain; $this->type = $type;
} }
} }

View File

@ -35,7 +35,7 @@ class TaskElement
* @var int * @var int
* @since 1.0.0 * @since 1.0.0
*/ */
private $id = null; private $id = 0;
/** /**
* Description. * Description.
@ -59,7 +59,7 @@ class TaskElement
* @var int * @var int
* @since 1.0.0 * @since 1.0.0
*/ */
private $creator = 0; private $createdBy = 0;
/** /**
* Created. * Created.
@ -67,7 +67,7 @@ class TaskElement
* @var \DateTime * @var \DateTime
* @since 1.0.0 * @since 1.0.0
*/ */
private $created = null; private $createdAt = null;
/** /**
* Status. * Status.
@ -75,7 +75,7 @@ class TaskElement
* @var int * @var int
* @since 1.0.0 * @since 1.0.0
*/ */
private $status = null; private $status = TaskStatus::OPEN;
/** /**
* Due. * Due.
@ -91,7 +91,7 @@ class TaskElement
* @var int * @var int
* @since 1.0.0 * @since 1.0.0
*/ */
private $forwarded = 0; private $forwarded = null;
/** /**
* Constructor. * Constructor.
@ -101,20 +101,8 @@ class TaskElement
*/ */
public function __construct() public function __construct()
{ {
} $this->due = (new \DateTime('now'))->modify('+1 day');
$this->createdAt = new \DateTime('now');
/**
* Init task element.
*
* @param int $id Article ID
*
* @return void
*
* @since 1.0.0
* @author Dennis Eichhorn <d.eichhorn@oms.com>
*/
public function init($id)
{
} }
/** /**
@ -123,9 +111,9 @@ class TaskElement
* @since 1.0.0 * @since 1.0.0
* @author Dennis Eichhorn <d.eichhorn@oms.com> * @author Dennis Eichhorn <d.eichhorn@oms.com>
*/ */
public function getCreated() public function getCreatedAt() : \DateTime
{ {
return $this->created; return $this->createdAt;
} }
/** /**
@ -136,9 +124,9 @@ class TaskElement
* @since 1.0.0 * @since 1.0.0
* @author Dennis Eichhorn <d.eichhorn@oms.com> * @author Dennis Eichhorn <d.eichhorn@oms.com>
*/ */
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 * @since 1.0.0
* @author Dennis Eichhorn <d.eichhorn@oms.com> * @author Dennis Eichhorn <d.eichhorn@oms.com>
*/ */
public function getCreator() public function getCreatedBy() : int
{ {
return $this->creator; return $this->createdBy;
} }
/** /**
@ -160,9 +148,9 @@ class TaskElement
* @since 1.0.0 * @since 1.0.0
* @author Dennis Eichhorn <d.eichhorn@oms.com> * @author Dennis Eichhorn <d.eichhorn@oms.com>
*/ */
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 * @since 1.0.0
* @author Dennis Eichhorn <d.eichhorn@oms.com> * @author Dennis Eichhorn <d.eichhorn@oms.com>
*/ */
public function getDescription() public function getDescription() : string
{ {
return $this->description; return $this->description;
} }
@ -184,7 +172,7 @@ class TaskElement
* @since 1.0.0 * @since 1.0.0
* @author Dennis Eichhorn <d.eichhorn@oms.com> * @author Dennis Eichhorn <d.eichhorn@oms.com>
*/ */
public function setDescription($description) public function setDescription(string $description)
{ {
$this->description = $description; $this->description = $description;
} }
@ -195,7 +183,7 @@ class TaskElement
* @since 1.0.0 * @since 1.0.0
* @author Dennis Eichhorn <d.eichhorn@oms.com> * @author Dennis Eichhorn <d.eichhorn@oms.com>
*/ */
public function getDue() public function getDue() : \DateTime
{ {
return $this->due; return $this->due;
} }
@ -208,7 +196,7 @@ class TaskElement
* @since 1.0.0 * @since 1.0.0
* @author Dennis Eichhorn <d.eichhorn@oms.com> * @author Dennis Eichhorn <d.eichhorn@oms.com>
*/ */
public function setDue($due) public function setDue(\DateTime $due)
{ {
$this->due = $due; $this->due = $due;
} }
@ -219,9 +207,9 @@ class TaskElement
* @since 1.0.0 * @since 1.0.0
* @author Dennis Eichhorn <d.eichhorn@oms.com> * @author Dennis Eichhorn <d.eichhorn@oms.com>
*/ */
public function getForwarded() public function getForwarded() : int
{ {
return $this->forwarded; return $this->forwarded ?? 0;
} }
/** /**
@ -232,7 +220,7 @@ class TaskElement
* @since 1.0.0 * @since 1.0.0
* @author Dennis Eichhorn <d.eichhorn@oms.com> * @author Dennis Eichhorn <d.eichhorn@oms.com>
*/ */
public function setForwarded($forwarded) public function setForwarded(int $forwarded)
{ {
$this->forwarded = $forwarded; $this->forwarded = $forwarded;
} }
@ -243,31 +231,18 @@ class TaskElement
* @since 1.0.0 * @since 1.0.0
* @author Dennis Eichhorn <d.eichhorn@oms.com> * @author Dennis Eichhorn <d.eichhorn@oms.com>
*/ */
public function getId() public function getId() : int
{ {
return $this->id; return $this->id;
} }
/**
* @param int $id
*
* @return void
*
* @since 1.0.0
* @author Dennis Eichhorn <d.eichhorn@oms.com>
*/
public function setId($id)
{
$this->id = $id;
}
/** /**
* @return int * @return int
* *
* @since 1.0.0 * @since 1.0.0
* @author Dennis Eichhorn <d.eichhorn@oms.com> * @author Dennis Eichhorn <d.eichhorn@oms.com>
*/ */
public function getStatus() public function getStatus() : int
{ {
return $this->status; return $this->status;
} }
@ -280,7 +255,7 @@ class TaskElement
* @since 1.0.0 * @since 1.0.0
* @author Dennis Eichhorn <d.eichhorn@oms.com> * @author Dennis Eichhorn <d.eichhorn@oms.com>
*/ */
public function setStatus($status) public function setStatus(int $status)
{ {
$this->status = $status; $this->status = $status;
} }
@ -291,7 +266,7 @@ class TaskElement
* @since 1.0.0 * @since 1.0.0
* @author Dennis Eichhorn <d.eichhorn@oms.com> * @author Dennis Eichhorn <d.eichhorn@oms.com>
*/ */
public function getTask() public function getTask() : int
{ {
return $this->task; return $this->task;
} }
@ -304,43 +279,8 @@ class TaskElement
* @since 1.0.0 * @since 1.0.0
* @author Dennis Eichhorn <d.eichhorn@oms.com> * @author Dennis Eichhorn <d.eichhorn@oms.com>
*/ */
public function setTask($task) public function setTask(int $task)
{ {
$this->task = $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)
{
}
} }

View File

@ -0,0 +1,81 @@
<?php
/**
* Orange Management
*
* PHP Version 7.0
*
* @category TBD
* @package TBD
* @author OMS Development Team <dev@oms.com>
* @author Dennis Eichhorn <d.eichhorn@oms.com>
* @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<string, 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 <d.eichhorn@oms.com>
*/
public function create($obj)
{
try {
$objId = parent::create($obj);
} catch (\Exception $e) {
var_dump($e->getMessage());
return false;
}
return $objId;
}
}

View File

@ -32,13 +32,22 @@ class TaskMapper extends DataMapperAbstract
'task_id' => ['name' => 'task_id', 'type' => 'int', 'internal' => 'id'], 'task_id' => ['name' => 'task_id', 'type' => 'int', 'internal' => 'id'],
'task_title' => ['name' => 'task_title', 'type' => 'string', 'internal' => 'title'], 'task_title' => ['name' => 'task_title', 'type' => 'string', 'internal' => 'title'],
'task_desc' => ['name' => 'task_desc', 'type' => 'string', 'internal' => 'description'], '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_type' => ['name' => 'task_type', 'type' => 'int', 'internal' => 'type'],
'task_status' => ['name' => 'task_status', 'type' => 'int', 'internal' => 'status'], 'task_status' => ['name' => 'task_status', 'type' => 'int', 'internal' => 'status'],
'task_due' => ['name' => 'task_due', 'type' => 'DateTime', 'internal' => 'due'], 'task_due' => ['name' => 'task_due', 'type' => 'DateTime', 'internal' => 'due'],
'task_done' => ['name' => 'task_done', 'type' => 'DateTime', 'internal' => 'done'], 'task_done' => ['name' => 'task_done', 'type' => 'DateTime', 'internal' => 'done'],
'task_creator' => ['name' => 'task_creator', 'type' => 'int', 'internal' => 'createdBy'], 'task_created_by' => ['name' => 'task_created_by', 'type' => 'int', 'internal' => 'createdBy'],
'task_created' => ['name' => 'task_created', 'type' => 'DateTime', 'internal' => 'createdAt'], '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 $table = 'task';
protected static $createdAt = 'task_created'; protected static $createdAt = 'task_created_at';
/** /**
* Primary field name. * Primary field name.
@ -92,7 +101,7 @@ class TaskMapper extends DataMapperAbstract
$this->db->con->prepare($query->toSql())->execute(); $this->db->con->prepare($query->toSql())->execute();
} catch (\Exception $e) { } catch (\Exception $e) {
var_dump($e); var_dump($e->getMessage());
return false; return false;
} }