diff --git a/lib/SP/Core/Messages/NoticeMessage.php b/lib/SP/Core/Messages/NotificationMessage.php
similarity index 97%
rename from lib/SP/Core/Messages/NoticeMessage.php
rename to lib/SP/Core/Messages/NotificationMessage.php
index f63678be..bcecaaf4 100644
--- a/lib/SP/Core/Messages/NoticeMessage.php
+++ b/lib/SP/Core/Messages/NotificationMessage.php
@@ -29,7 +29,7 @@ namespace SP\Core\Messages;
*
* @package SP\Core\Messages
*/
-class NoticeMessage extends MessageBase
+class NotificationMessage extends MessageBase
{
/**
* Componer un mensaje en formato HTML
diff --git a/lib/SP/DataModel/PublicLinkData.php b/lib/SP/DataModel/PublicLinkData.php
index 62b93820..870eeaa9 100644
--- a/lib/SP/DataModel/PublicLinkData.php
+++ b/lib/SP/DataModel/PublicLinkData.php
@@ -2,8 +2,8 @@
/**
* sysPass
*
- * @author nuxsmin
- * @link https://syspass.org
+ * @author nuxsmin
+ * @link https://syspass.org
* @copyright 2012-2018, Rubén Domínguez nuxsmin@$syspass.org
*
* This file is part of sysPass.
@@ -61,6 +61,10 @@ class PublicLinkData extends DataModelBase implements DataModelInterface
* @var int
*/
public $dateAdd = 0;
+ /**
+ * @var int
+ */
+ public $dateUpdate = 0;
/**
* @var int
*/
@@ -309,4 +313,20 @@ class PublicLinkData extends DataModelBase implements DataModelInterface
{
// TODO: Implement getName() method.
}
+
+ /**
+ * @return int
+ */
+ public function getDateUpdate(): int
+ {
+ return (int)$this->dateUpdate;
+ }
+
+ /**
+ * @param int $dateUpdate
+ */
+ public function setDateUpdate(int $dateUpdate)
+ {
+ $this->dateUpdate = $dateUpdate;
+ }
}
\ No newline at end of file
diff --git a/lib/SP/DataModel/PublicLinkListData.php b/lib/SP/DataModel/PublicLinkListData.php
index bceba9f3..b48544fe 100644
--- a/lib/SP/DataModel/PublicLinkListData.php
+++ b/lib/SP/DataModel/PublicLinkListData.php
@@ -2,8 +2,8 @@
/**
* sysPass
*
- * @author nuxsmin
- * @link https://syspass.org
+ * @author nuxsmin
+ * @link https://syspass.org
* @copyright 2012-2018, Rubén Domínguez nuxsmin@$syspass.org
*
* This file is part of sysPass.
@@ -48,6 +48,14 @@ class PublicLinkListData extends PublicLinkData
*/
public $accountName;
+ /**
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->accountName;
+ }
+
/**
* @return string
*/
diff --git a/lib/SP/DataModel/TrackData.php b/lib/SP/DataModel/TrackData.php
index 04d7d0b4..b20c2c00 100644
--- a/lib/SP/DataModel/TrackData.php
+++ b/lib/SP/DataModel/TrackData.php
@@ -40,11 +40,11 @@ class TrackData extends DataModelBase
/**
* @var int
*/
- public $userId = 0;
+ public $userId;
/**
* @var string
*/
- public $source = '';
+ public $source;
/**
* @var int
*/
@@ -52,11 +52,11 @@ class TrackData extends DataModelBase
/**
* @var string
*/
- public $ipv4 = '';
+ public $ipv4;
/**
* @var string
*/
- public $ipv6 = '';
+ public $ipv6;
/**
* @return int
diff --git a/lib/SP/Repositories/Notification/NotificationRepository.php b/lib/SP/Repositories/Notification/NotificationRepository.php
index 922122dc..1a293e87 100644
--- a/lib/SP/Repositories/Notification/NotificationRepository.php
+++ b/lib/SP/Repositories/Notification/NotificationRepository.php
@@ -48,7 +48,7 @@ class NotificationRepository extends Repository implements RepositoryItemInterfa
*
* @param NotificationData $itemData
*
- * @return int
+ * @return QueryResult
* @throws ConstraintException
* @throws QueryException
*/
@@ -77,7 +77,7 @@ class NotificationRepository extends Repository implements RepositoryItemInterfa
]);
$queryData->setOnErrorMessage(__u('Error al crear la notificación'));
- return $this->db->doQuery($queryData)->getLastId();
+ return $this->db->doQuery($queryData);
}
/**
@@ -186,7 +186,7 @@ class NotificationRepository extends Repository implements RepositoryItemInterfa
*
* @param int $id
*
- * @return NotificationData
+ * @return QueryResult
* @throws ConstraintException
* @throws QueryException
*/
@@ -211,21 +211,21 @@ class NotificationRepository extends Repository implements RepositoryItemInterfa
$queryData->addParam($id);
$queryData->setOnErrorMessage(__u('Error al obtener la notificación'));
- return $this->db->doSelect($queryData)->getData();
+ return $this->db->doSelect($queryData);
}
/**
* Returns all the items
*
- * @return NotificationData[]
+ * @return QueryResult
* @throws ConstraintException
* @throws QueryException
*/
public function getAll()
{
$query = /** @lang SQL */
- 'SELECT id
- notice_type,
+ 'SELECT id,
+ type,
component,
description,
`date`,
@@ -233,14 +233,15 @@ class NotificationRepository extends Repository implements RepositoryItemInterfa
checked,
sticky,
onlyAdmin
- FROM Notification';
+ FROM Notification
+ ORDER BY id';
$queryData = new QueryData();
$queryData->setMapClassName(NotificationData::class);
$queryData->setQuery($query);
$queryData->setOnErrorMessage(__u('Error al obtener las notificaciones'));
- return $this->db->doSelect($queryData)->getDataAsArray();
+ return $this->db->doSelect($queryData);
}
/**
@@ -248,16 +249,16 @@ class NotificationRepository extends Repository implements RepositoryItemInterfa
*
* @param array $ids
*
- * @return NotificationData[]
+ * @return QueryResult
* @throws ConstraintException
* @throws QueryException
*/
public function getByIdBatch(array $ids)
{
if (empty($ids)) {
- return [];
+ return new QueryResult();
}
-
+
$query = /** @lang SQL */
'SELECT id,
type,
@@ -269,14 +270,15 @@ class NotificationRepository extends Repository implements RepositoryItemInterfa
sticky,
onlyAdmin
FROM Notification
- WHERE id IN (' . $this->getParamsFromArray($ids) . ')';
+ WHERE id IN (' . $this->getParamsFromArray($ids) . ')
+ ORDER BY id';
$queryData = new QueryData();
$queryData->setMapClassName(NotificationData::class);
$queryData->setQuery($query);
$queryData->setParams($ids);
- return $this->db->doSelect($queryData)->getDataAsArray();
+ return $this->db->doSelect($queryData);
}
/**
@@ -344,6 +346,7 @@ class NotificationRepository extends Repository implements RepositoryItemInterfa
public function search(ItemSearchData $itemSearchData)
{
$queryData = new QueryData();
+ $queryData->setMapClassName(NotificationData::class);
$queryData->setSelect('id, type, component, description, `date`, checked, userId, sticky, onlyAdmin');
$queryData->setFrom('Notification');
$queryData->setOrder('`date` DESC');
@@ -377,6 +380,7 @@ class NotificationRepository extends Repository implements RepositoryItemInterfa
public function searchForUserId(ItemSearchData $itemSearchData, $userId)
{
$queryData = new QueryData();
+ $queryData->setMapClassName(NotificationData::class);
$queryData->setSelect('id, type, component, description, `date`, checked, userId, sticky, onlyAdmin');
$queryData->setFrom('Notification');
$queryData->setOrder('`date` DESC');
@@ -429,16 +433,17 @@ class NotificationRepository extends Repository implements RepositoryItemInterfa
* Devolver las notificaciones de un usuario para una fecha y componente determinados
*
* @param $component
- * @param $id
+ * @param $userId
*
- * @return NotificationData[]
+ * @return QueryResult
* @throws ConstraintException
* @throws QueryException
*/
- public function getForUserIdByDate($component, $id)
+ public function getForUserIdByDate($component, $userId)
{
$query = /** @lang SQL */
- 'SELECT type,
+ 'SELECT id,
+ type,
component,
description,
`date`,
@@ -447,23 +452,24 @@ class NotificationRepository extends Repository implements RepositoryItemInterfa
sticky,
onlyAdmin
FROM Notification
- WHERE component = ? AND
- (UNIX_TIMESTAMP() - `date`) <= 86400 AND
- userId = ?';
+ WHERE component = ?
+ AND (UNIX_TIMESTAMP() - `date`) <= 86400
+ AND userId = ?
+ ORDER BY id';
$queryData = new QueryData();
$queryData->setMapClassName(NotificationData::class);
$queryData->setQuery($query);
- $queryData->setParams([$component, $id]);
+ $queryData->setParams([$component, $userId]);
$queryData->setOnErrorMessage(__u('Error al obtener las notificaciones'));
- return $this->db->doSelect($queryData)->getDataAsArray();
+ return $this->db->doSelect($queryData);
}
/**
* @param $id
*
- * @return NotificationData[]
+ * @return QueryResult
* @throws ConstraintException
* @throws QueryException
*/
@@ -490,13 +496,13 @@ class NotificationRepository extends Repository implements RepositoryItemInterfa
$queryData->addParam($id);
$queryData->setOnErrorMessage(__u('Error al obtener las notificaciones'));
- return $this->db->doSelect($queryData)->getDataAsArray();
+ return $this->db->doSelect($queryData);
}
/**
* @param $id
*
- * @return NotificationData[]
+ * @return QueryResult
* @throws ConstraintException
* @throws QueryException
*/
@@ -524,6 +530,6 @@ class NotificationRepository extends Repository implements RepositoryItemInterfa
$queryData->addParam($id);
$queryData->setOnErrorMessage(__u('Error al obtener las notificaciones'));
- return $this->db->doSelect($queryData)->getDataAsArray();
+ return $this->db->doSelect($queryData);
}
}
\ No newline at end of file
diff --git a/lib/SP/Repositories/Plugin/PluginRepository.php b/lib/SP/Repositories/Plugin/PluginRepository.php
index c0244764..7abbd95c 100644
--- a/lib/SP/Repositories/Plugin/PluginRepository.php
+++ b/lib/SP/Repositories/Plugin/PluginRepository.php
@@ -50,7 +50,7 @@ class PluginRepository extends Repository implements RepositoryItemInterface
*
* @param PluginData $itemData
*
- * @return int
+ * @return QueryResult
* @throws ConstraintException
* @throws QueryException
*/
@@ -69,7 +69,7 @@ class PluginRepository extends Repository implements RepositoryItemInterface
]);
$queryData->setOnErrorMessage(__u('Error al crear el plugin'));
- return $this->db->doQuery($queryData)->getLastId();
+ return $this->db->doQuery($queryData);
}
/**
@@ -85,11 +85,11 @@ class PluginRepository extends Repository implements RepositoryItemInterface
{
$query = /** @lang SQL */
'UPDATE Plugin
- SET `name` = ?,
+ SET `name` = ?,
`data` = ?,
enabled = ?,
available = ?
- WHERE `name` = ? LIMIT 1';
+ WHERE `name` = ? OR id = ? LIMIT 1';
$queryData = new QueryData();
$queryData->setQuery($query);
@@ -98,7 +98,8 @@ class PluginRepository extends Repository implements RepositoryItemInterface
$itemData->getData(),
$itemData->getEnabled(),
$itemData->getAvailable(),
- $itemData->getName()
+ $itemData->getName(),
+ $itemData->getId()
]);
$queryData->setOnErrorMessage(__u('Error al actualizar el plugin'));
@@ -110,7 +111,7 @@ class PluginRepository extends Repository implements RepositoryItemInterface
*
* @param int $id
*
- * @return PluginData
+ * @return QueryResult
* @throws ConstraintException
* @throws QueryException
*/
@@ -130,13 +131,13 @@ class PluginRepository extends Repository implements RepositoryItemInterface
$queryData->setQuery($query);
$queryData->addParam($id);
- return $this->db->doSelect($queryData)->getData();
+ return $this->db->doSelect($queryData);
}
/**
* Returns all the items
*
- * @return PluginData[]
+ * @return QueryResult
* @throws ConstraintException
* @throws QueryException
*/
@@ -154,7 +155,7 @@ class PluginRepository extends Repository implements RepositoryItemInterface
$queryData->setMapClassName(PluginData::class);
$queryData->setQuery($query);
- return $this->db->doSelect($queryData)->getDataAsArray();
+ return $this->db->doSelect($queryData);
}
/**
@@ -162,14 +163,14 @@ class PluginRepository extends Repository implements RepositoryItemInterface
*
* @param array $ids
*
- * @return PluginData[]
+ * @return QueryResult
* @throws ConstraintException
* @throws QueryException
*/
public function getByIdBatch(array $ids)
{
if (empty($ids)) {
- return [];
+ return new QueryResult();
}
$query = /** @lang SQL */
@@ -178,14 +179,15 @@ class PluginRepository extends Repository implements RepositoryItemInterface
enabled,
available
FROM Plugin
- WHERE id IN (' . $this->getParamsFromArray($ids) . ')';
+ WHERE id IN (' . $this->getParamsFromArray($ids) . ')
+ ORDER BY id';
$queryData = new QueryData();
$queryData->setMapClassName(PluginData::class);
$queryData->setQuery($query);
$queryData->setParams($ids);
- return $this->db->doSelect($queryData)->getDataAsArray();
+ return $this->db->doSelect($queryData);
}
/**
@@ -193,16 +195,23 @@ class PluginRepository extends Repository implements RepositoryItemInterface
*
* @param array $ids
*
- * @return void
+ * @return int
* @throws SPException
* @throws ConstraintException
* @throws QueryException
*/
public function deleteByIdBatch(array $ids)
{
- foreach ($ids as $id) {
- $this->delete($id);
+ if (empty($ids)) {
+ return 0;
}
+
+ $queryData = new QueryData();
+ $queryData->setQuery('DELETE FROM Plugin WHERE id IN (' . $this->getParamsFromArray($ids) . ')');
+ $queryData->setParams($ids);
+ $queryData->setOnErrorMessage(__u('Error al eliminar el plugin'));
+
+ return $this->db->doQuery($queryData)->getAffectedNumRows();
}
/**
@@ -273,6 +282,7 @@ class PluginRepository extends Repository implements RepositoryItemInterface
public function search(ItemSearchData $itemSearchData)
{
$queryData = new QueryData();
+ $queryData->setMapClassName(PluginData::class);
$queryData->setSelect('id, name, enabled, available');
$queryData->setFrom('Plugin');
$queryData->setOrder('name');
@@ -296,7 +306,7 @@ class PluginRepository extends Repository implements RepositoryItemInterface
*
* @param string $name
*
- * @return PluginData
+ * @return QueryResult
* @throws ConstraintException
* @throws QueryException
*/
@@ -316,7 +326,7 @@ class PluginRepository extends Repository implements RepositoryItemInterface
$queryData->setQuery($query);
$queryData->addParam($name);
- return $this->db->doSelect($queryData)->getData();
+ return $this->db->doSelect($queryData);
}
/**
@@ -373,7 +383,7 @@ class PluginRepository extends Repository implements RepositoryItemInterface
{
$queryData = new QueryData();
$queryData->setQuery('UPDATE Plugin SET available = ? WHERE id = ? LIMIT 1');
- $queryData->setParams([$id, $available]);
+ $queryData->setParams([$available, $id]);
$queryData->setOnErrorMessage(__u('Error al actualizar el plugin'));
return $this->db->doQuery($queryData)->getAffectedNumRows();
@@ -421,7 +431,7 @@ class PluginRepository extends Repository implements RepositoryItemInterface
/**
* Devolver los plugins activados
*
- * @return ItemData[]
+ * @return QueryResult
* @throws ConstraintException
* @throws QueryException
*/
@@ -429,8 +439,8 @@ class PluginRepository extends Repository implements RepositoryItemInterface
{
$queryData = new QueryData();
$queryData->setMapClassName(ItemData::class);
- $queryData->setQuery('SELECT id, name FROM Plugin WHERE enabled = 1');
+ $queryData->setQuery('SELECT id, `name` FROM Plugin WHERE enabled = 1 ORDER BY id');
- return $this->db->doSelect($queryData)->getDataAsArray();
+ return $this->db->doSelect($queryData);
}
}
\ No newline at end of file
diff --git a/lib/SP/Repositories/PublicLink/PublicLinkRepository.php b/lib/SP/Repositories/PublicLink/PublicLinkRepository.php
index f829b87c..beb53e43 100644
--- a/lib/SP/Repositories/PublicLink/PublicLinkRepository.php
+++ b/lib/SP/Repositories/PublicLink/PublicLinkRepository.php
@@ -31,11 +31,11 @@ use SP\DataModel\ItemSearchData;
use SP\DataModel\PublicLinkData;
use SP\DataModel\PublicLinkListData;
use SP\Repositories\DuplicatedItemException;
-use SP\Repositories\NoSuchItemException;
use SP\Repositories\Repository;
use SP\Repositories\RepositoryItemInterface;
use SP\Repositories\RepositoryItemTrait;
use SP\Storage\Database\QueryData;
+use SP\Storage\Database\QueryResult;
/**
* Class PublicLinkRepository
@@ -46,16 +46,14 @@ class PublicLinkRepository extends Repository implements RepositoryItemInterface
{
use RepositoryItemTrait;
-
/**
* Deletes an item
*
* @param $id
*
* @return int
- * @throws SPException
* @throws ConstraintException
- * @throws \SP\Core\Exceptions\QueryException
+ * @throws QueryException
*/
public function delete($id)
{
@@ -70,7 +68,7 @@ class PublicLinkRepository extends Repository implements RepositoryItemInterface
/**
* Returns all the items
*
- * @return PublicLinkData[]
+ * @return QueryResult
* @throws QueryException
* @throws ConstraintException
*/
@@ -96,13 +94,14 @@ class PublicLinkRepository extends Repository implements RepositoryItemInterface
A.name AS accountName
FROM PublicLink PL
INNER JOIN User U ON PL.userId = U.id
- INNER JOIN Account A ON itemId = A.id';
+ INNER JOIN Account A ON itemId = A.id
+ ORDER BY PL.id';
$queryData = new QueryData();
$queryData->setMapClassName(PublicLinkListData::class);
$queryData->setQuery($query);
- return $this->db->doSelect($queryData)->getDataAsArray();
+ return $this->db->doSelect($queryData);
}
/**
@@ -110,14 +109,14 @@ class PublicLinkRepository extends Repository implements RepositoryItemInterface
*
* @param array $ids
*
- * @return PublicLinkData[]
+ * @return \SP\Storage\Database\QueryResult
* @throws QueryException
* @throws ConstraintException
*/
public function getByIdBatch(array $ids)
{
if (empty($ids)) {
- return [];
+ return new QueryResult();
}
$query = /** @lang SQL */
@@ -141,14 +140,15 @@ class PublicLinkRepository extends Repository implements RepositoryItemInterface
FROM PublicLink PL
INNER JOIN User U ON PL.userId = U.id
INNER JOIN Account A ON itemId = A.id
- WHERE PL.id IN (' . $this->getParamsFromArray($ids) . ')';
+ WHERE PL.id IN (' . $this->getParamsFromArray($ids) . ')
+ ORDER BY PL.id';
$queryData = new QueryData();
$queryData->setMapClassName(PublicLinkListData::class);
$queryData->setQuery($query);
$queryData->setParams($ids);
- return $this->db->doSelect($queryData)->getDataAsArray();
+ return $this->db->doSelect($queryData);
}
/**
@@ -158,7 +158,7 @@ class PublicLinkRepository extends Repository implements RepositoryItemInterface
*
* @return int
* @throws ConstraintException
- * @throws \SP\Core\Exceptions\QueryException
+ * @throws QueryException
*/
public function deleteByIdBatch(array $ids)
{
@@ -190,7 +190,7 @@ class PublicLinkRepository extends Repository implements RepositoryItemInterface
*
* @param ItemSearchData $itemSearchData
*
- * @return mixed
+ * @return \SP\Storage\Database\QueryResult
* @throws QueryException
* @throws ConstraintException
*/
@@ -243,7 +243,7 @@ class PublicLinkRepository extends Repository implements RepositoryItemInterface
*
* @param PublicLinkData $itemData
*
- * @return int
+ * @return QueryResult
* @throws DuplicatedItemException
* @throws QueryException
* @throws ConstraintException
@@ -280,7 +280,7 @@ class PublicLinkRepository extends Repository implements RepositoryItemInterface
]);
$queryData->setOnErrorMessage(__u('Error al crear enlace'));
- return $this->db->doQuery($queryData)->getLastId();
+ return $this->db->doQuery($queryData);
}
/**
@@ -320,7 +320,7 @@ class PublicLinkRepository extends Repository implements RepositoryItemInterface
*
* @return int
* @throws ConstraintException
- * @throws \SP\Core\Exceptions\QueryException
+ * @throws QueryException
*/
public function addLinkView(PublicLinkData $publicLinkData)
{
@@ -350,7 +350,7 @@ class PublicLinkRepository extends Repository implements RepositoryItemInterface
* @return int
* @throws SPException
* @throws ConstraintException
- * @throws \SP\Core\Exceptions\QueryException
+ * @throws QueryException
*/
public function update($itemData)
{
@@ -398,7 +398,7 @@ class PublicLinkRepository extends Repository implements RepositoryItemInterface
* @return int
* @throws SPException
* @throws ConstraintException
- * @throws \SP\Core\Exceptions\QueryException
+ * @throws QueryException
*/
public function refresh(PublicLinkData $publicLinkData)
{
@@ -430,8 +430,7 @@ class PublicLinkRepository extends Repository implements RepositoryItemInterface
*
* @param int $id
*
- * @return PublicLinkData
- * @throws NoSuchItemException
+ * @return QueryResult
* @throws QueryException
* @throws ConstraintException
*/
@@ -465,21 +464,14 @@ class PublicLinkRepository extends Repository implements RepositoryItemInterface
$queryData->addParam($id);
$queryData->setOnErrorMessage(__u('Error al obtener enlace'));
- $result = $this->db->doSelect($queryData);
-
- if ($result->getNumRows() === 0) {
- throw new NoSuchItemException(__u('El enlace no existe'));
- }
-
- return $result->getData();
+ return $this->db->doSelect($queryData);
}
/**
* @param $hash string
*
- * @return PublicLinkData
+ * @return QueryResult
* @throws ConstraintException
- * @throws NoSuchItemException
* @throws QueryException
*/
public function getByHash($hash)
@@ -513,13 +505,7 @@ class PublicLinkRepository extends Repository implements RepositoryItemInterface
$queryData->addParam($hash);
$queryData->setOnErrorMessage(__u('Error al obtener enlace'));
- $result = $this->db->doSelect($queryData);
-
- if ($result->getNumRows() === 0) {
- throw new NoSuchItemException(__u('El enlace no existe'));
- }
-
- return $result->getData();
+ return $this->db->doSelect($queryData);
}
/**
@@ -527,9 +513,8 @@ class PublicLinkRepository extends Repository implements RepositoryItemInterface
*
* @param int $itemId
*
- * @return PublicLinkData
+ * @return \SP\Storage\Database\QueryResult
* @throws ConstraintException
- * @throws NoSuchItemException
* @throws QueryException
*/
public function getHashForItem($itemId)
@@ -540,12 +525,6 @@ class PublicLinkRepository extends Repository implements RepositoryItemInterface
$queryData->addParam($itemId);
$queryData->setOnErrorMessage(__u('Error al obtener enlace'));
- $result = $this->db->doSelect($queryData);
-
- if ($result->getNumRows() === 0) {
- throw new NoSuchItemException(__u('El enlace no existe'));
- }
-
- return $result->getData();
+ return $this->db->doSelect($queryData);
}
}
\ No newline at end of file
diff --git a/lib/SP/Repositories/Track/TrackRepository.php b/lib/SP/Repositories/Track/TrackRepository.php
index 0a72c855..14c4df01 100644
--- a/lib/SP/Repositories/Track/TrackRepository.php
+++ b/lib/SP/Repositories/Track/TrackRepository.php
@@ -38,7 +38,7 @@ class TrackRepository extends Repository
/**
* @param TrackRequest $trackRequest
*
- * @return mixed
+ * @return int
* @throws \SP\Core\Exceptions\ConstraintException
* @throws \SP\Core\Exceptions\QueryException
*/
@@ -66,7 +66,7 @@ class TrackRepository extends Repository
}
/**
- * @param $id int|array
+ * @param $id int
*
* @return int
* @throws \SP\Core\Exceptions\QueryException
@@ -82,42 +82,10 @@ class TrackRepository extends Repository
return $this->db->doQuery($queryData)->getAffectedNumRows();
}
- /**
- * @param TrackData $itemData
- *
- * @return int
- * @throws \SP\Core\Exceptions\ConstraintException
- * @throws \SP\Core\Exceptions\QueryException
- */
- public function update(TrackData $itemData)
- {
- $query = /** @lang SQL */
- 'UPDATE Track SET
- userId = ?,
- `source` = ?,
- `time` = UNIX_TIMESTAMP(),
- ipv4 = ?,
- ipv6 = ?
- WHERE id = ? LIMIT 1';
-
- $queryData = new QueryData();
- $queryData->setQuery($query);
- $queryData->setParams([
- $itemData->getUserId(),
- $itemData->getSource(),
- $itemData->getTrackIpv4Bin(),
- $itemData->getTrackIpv6Bin(),
- $itemData->getId()
- ]);
- $queryData->setOnErrorMessage(__u('Error al actualizar track'));
-
- return $this->db->doQuery($queryData)->getAffectedNumRows();
- }
-
/**
* @param $id int
*
- * @return TrackData
+ * @return \SP\Storage\Database\QueryResult
* @throws \SP\Core\Exceptions\ConstraintException
* @throws \SP\Core\Exceptions\QueryException
*/
@@ -139,11 +107,11 @@ class TrackRepository extends Repository
$queryData->addParam($id);
$queryData->setOnErrorMessage(__u('Error al obtener track'));
- return $this->db->doSelect($queryData)->getData();
+ return $this->db->doSelect($queryData);
}
/**
- * @return TrackData[]
+ * @return \SP\Storage\Database\QueryResult
* @throws \SP\Core\Exceptions\ConstraintException
* @throws \SP\Core\Exceptions\QueryException
*/
@@ -162,7 +130,7 @@ class TrackRepository extends Repository
$queryData->setQuery($query);
$queryData->setOnErrorMessage(__u('Error al obtener tracks'));
- return $this->db->doSelect($queryData)->getDataAsArray();
+ return $this->db->doSelect($queryData);
}
/**
@@ -170,7 +138,7 @@ class TrackRepository extends Repository
*
* @param TrackRequest $trackRequest
*
- * @return array
+ * @return \SP\Storage\Database\QueryResult
* @throws \SP\Core\Exceptions\ConstraintException
* @throws \SP\Core\Exceptions\QueryException
*/
@@ -187,13 +155,13 @@ class TrackRepository extends Repository
$queryData->setMapClassName(TrackData::class);
$queryData->setQuery($query);
$queryData->setParams([
- $trackRequest->time,
+ (int)$trackRequest->time,
$trackRequest->getIpv4(),
$trackRequest->getIpv6(),
$trackRequest->source
]);
$queryData->setOnErrorMessage(__u('Error al obtener tracks'));
- return $this->db->doSelect($queryData)->getDataAsArray();
+ return $this->db->doSelect($queryData);
}
}
\ No newline at end of file
diff --git a/lib/SP/Repositories/User/UserPassRecoverRepository.php b/lib/SP/Repositories/User/UserPassRecoverRepository.php
index b3d1cc0f..00e87723 100644
--- a/lib/SP/Repositories/User/UserPassRecoverRepository.php
+++ b/lib/SP/Repositories/User/UserPassRecoverRepository.php
@@ -56,7 +56,7 @@ class UserPassRecoverRepository extends Repository
$queryData = new QueryData();
$queryData->setQuery($query);
- $queryData->setParams([$userId, $time]);
+ $queryData->setParams([(int)$userId, (int)$time]);
return $this->db->doSelect($queryData)->getNumRows();
}
@@ -64,8 +64,8 @@ class UserPassRecoverRepository extends Repository
/**
* Adds a hash for a user's id
*
- * @param $userId
- * @param $hash
+ * @param int $userId
+ * @param string $hash
*
* @return int
* @throws \SP\Core\Exceptions\ConstraintException
@@ -82,7 +82,7 @@ class UserPassRecoverRepository extends Repository
$queryData = new QueryData();
$queryData->setQuery($query);
- $queryData->setParams([$userId, $hash]);
+ $queryData->setParams([(int)$userId, $hash]);
$queryData->setOnErrorMessage(__u('Error al generar el hash de recuperación'));
return $this->db->doQuery($queryData)->getLastId();
@@ -94,7 +94,7 @@ class UserPassRecoverRepository extends Repository
* @param string $hash
* @param int $time
*
- * @return bool
+ * @return int
* @throws SPException
*/
public function toggleUsedByHash($hash, $time)
@@ -108,7 +108,7 @@ class UserPassRecoverRepository extends Repository
$queryData = new QueryData();
$queryData->setQuery($query);
- $queryData->setParams([$hash, $time]);
+ $queryData->setParams([$hash, (int)$time]);
$queryData->setOnErrorMessage(__u('Error en comprobación de hash'));
return $this->db->doQuery($queryData)->getAffectedNumRows();
@@ -120,7 +120,7 @@ class UserPassRecoverRepository extends Repository
* @param $hash
* @param $time
*
- * @return mixed
+ * @return \SP\Storage\Database\QueryResult
* @throws \SP\Core\Exceptions\ConstraintException
* @throws \SP\Core\Exceptions\QueryException
*/
@@ -136,8 +136,8 @@ class UserPassRecoverRepository extends Repository
$queryData = new QueryData();
$queryData->setQuery($query);
- $queryData->setParams([$hash, $time]);
+ $queryData->setParams([$hash, (int)$time]);
- return $this->db->doSelect($queryData)->getData();
+ return $this->db->doSelect($queryData);
}
}
\ No newline at end of file
diff --git a/lib/SP/Services/Install/Installer.php b/lib/SP/Services/Install/Installer.php
index b4979c62..b8de0e07 100644
--- a/lib/SP/Services/Install/Installer.php
+++ b/lib/SP/Services/Install/Installer.php
@@ -56,7 +56,7 @@ class Installer extends Service
*/
const VERSION = [3, 0, 0];
const VERSION_TEXT = '3.0-beta';
- const BUILD = 18061401;
+ const BUILD = 18061801;
/**
* @var ConfigService
diff --git a/lib/SP/Services/MailService.php b/lib/SP/Services/MailService.php
index 261b4444..aee26bc9 100644
--- a/lib/SP/Services/MailService.php
+++ b/lib/SP/Services/MailService.php
@@ -173,12 +173,15 @@ class MailService extends Service
/**
* @throws MailProviderException
+ * @throws ServiceException
*/
protected function initialize()
{
if ($this->config->getConfigData()->isMailEnabled()) {
$this->mailer = $this->dic->get(MailProvider::class)
->getMailer($this->getParamsFromConfig());
+ } else {
+ throw new ServiceException(__u('Servicio de correo no disponible'));
}
$this->appInfo = Util::getAppInfo();
diff --git a/lib/SP/Services/Notification/NotificationService.php b/lib/SP/Services/Notification/NotificationService.php
index a6630b47..a36a22ba 100644
--- a/lib/SP/Services/Notification/NotificationService.php
+++ b/lib/SP/Services/Notification/NotificationService.php
@@ -54,7 +54,7 @@ class NotificationService extends Service
*/
public function create(NotificationData $itemData)
{
- return $this->notificationRepository->create($itemData);
+ return $this->notificationRepository->create($itemData)->getLastId();
}
/**
@@ -82,7 +82,7 @@ class NotificationService extends Service
*/
public function getByIdBatch(array $ids)
{
- return $this->notificationRepository->getByIdBatch($ids);
+ return $this->notificationRepository->getByIdBatch($ids)->getDataAsArray();
}
/**
@@ -172,7 +172,7 @@ class NotificationService extends Service
*/
public function getById($id)
{
- return $this->notificationRepository->getById($id);
+ return $this->notificationRepository->getById($id)->getData();
}
/**
@@ -184,7 +184,7 @@ class NotificationService extends Service
*/
public function getAll()
{
- return $this->notificationRepository->getAll();
+ return $this->notificationRepository->getAll()->getDataAsArray();
}
/**
@@ -213,7 +213,7 @@ class NotificationService extends Service
*/
public function getForUserIdByDate($component, $id)
{
- return $this->notificationRepository->getForUserIdByDate($component, $id);
+ return $this->notificationRepository->getForUserIdByDate($component, $id)->getDataAsArray();
}
/**
@@ -225,7 +225,7 @@ class NotificationService extends Service
*/
public function getAllForUserId($id)
{
- return $this->notificationRepository->getAllForUserId($id);
+ return $this->notificationRepository->getAllForUserId($id)->getDataAsArray();
}
/**
@@ -237,7 +237,7 @@ class NotificationService extends Service
*/
public function getAllActiveForUserId($id)
{
- return $this->notificationRepository->getAllForUserId($id);
+ return $this->notificationRepository->getAllActiveForUserId($id)->getDataAsArray();
}
/**
diff --git a/lib/SP/Services/Plugin/PluginService.php b/lib/SP/Services/Plugin/PluginService.php
index 4b74cf89..790e385b 100644
--- a/lib/SP/Services/Plugin/PluginService.php
+++ b/lib/SP/Services/Plugin/PluginService.php
@@ -56,7 +56,7 @@ class PluginService extends Service
*/
public function create(PluginData $itemData)
{
- return $this->pluginRepository->create($itemData);
+ return $this->pluginRepository->create($itemData)->getLastId();
}
/**
@@ -84,7 +84,7 @@ class PluginService extends Service
*/
public function getById($id)
{
- return $this->pluginRepository->getById($id);
+ return $this->pluginRepository->getById($id)->getData();
}
/**
@@ -96,7 +96,7 @@ class PluginService extends Service
*/
public function getAll()
{
- return $this->pluginRepository->getAll();
+ return $this->pluginRepository->getAll()->getDataAsArray();
}
/**
@@ -110,7 +110,7 @@ class PluginService extends Service
*/
public function getByIdBatch(array $ids)
{
- return $this->pluginRepository->getByIdBatch($ids);
+ return $this->pluginRepository->getByIdBatch($ids)->getDataAsArray();
}
/**
@@ -169,7 +169,7 @@ class PluginService extends Service
*/
public function getByName($name)
{
- return $this->pluginRepository->getByName($name);
+ return $this->pluginRepository->getByName($name)->getData();
}
/**
@@ -255,7 +255,7 @@ class PluginService extends Service
*/
public function getEnabled()
{
- return $this->pluginRepository->getEnabled();
+ return $this->pluginRepository->getEnabled()->getDataAsArray();
}
protected function initialize()
diff --git a/lib/SP/Services/PublicLink/PublicLinkService.php b/lib/SP/Services/PublicLink/PublicLinkService.php
index 5af61ec9..59298050 100644
--- a/lib/SP/Services/PublicLink/PublicLinkService.php
+++ b/lib/SP/Services/PublicLink/PublicLinkService.php
@@ -33,6 +33,7 @@ use SP\Core\Exceptions\SPException;
use SP\DataModel\ItemSearchData;
use SP\DataModel\PublicLinkData;
use SP\Http\Request;
+use SP\Repositories\NoSuchItemException;
use SP\Repositories\PublicLink\PublicLinkRepository;
use SP\Services\Account\AccountService;
use SP\Services\Service;
@@ -98,12 +99,12 @@ class PublicLinkService extends Service
/**
* @param $id
*
- * @return \SP\DataModel\PublicLinkData
+ * @return \SP\DataModel\PublicLinkListData
* @throws \SP\Core\Exceptions\SPException
*/
public function getById($id)
{
- return $this->publicLinkRepository->getById($id);
+ return $this->publicLinkRepository->getById($id)->getData();
}
/**
@@ -123,7 +124,14 @@ class PublicLinkService extends Service
$salt = $this->config->getConfigData()->getPasswordSalt();
$key = self::getNewKey($salt);
- $publicLinkData = $this->publicLinkRepository->getById($id);
+ $result = $this->publicLinkRepository->getById($id);
+
+ if ($result->getNumRows() === 0) {
+ throw new NoSuchItemException(__u('El enlace no existe'));
+ }
+
+ /** @var PublicLinkData $publicLinkData */
+ $publicLinkData = $result->getData();
$publicLinkData->setHash(self::getHashForKey($key, $salt));
$publicLinkData->setData($this->getSecuredLinkData($publicLinkData->getItemId(), $key));
$publicLinkData->setDateExpire(self::calcDateExpire($this->config));
@@ -247,7 +255,7 @@ class PublicLinkService extends Service
$itemData->setMaxCountViews($this->config->getConfigData()->getPublinksMaxViews());
$itemData->setUserId($this->context->getUserData()->getId());
- return $this->publicLinkRepository->create($itemData);
+ return $this->publicLinkRepository->create($itemData)->getLastId();
}
/**
@@ -270,7 +278,7 @@ class PublicLinkService extends Service
*/
public function getAllBasic()
{
- return $this->publicLinkRepository->getAll();
+ return $this->publicLinkRepository->getAll()->getDataAsArray();
}
/**
@@ -332,7 +340,13 @@ class PublicLinkService extends Service
*/
public function getByHash($hash)
{
- return $this->publicLinkRepository->getByHash($hash);
+ $result = $this->publicLinkRepository->getByHash($hash);
+
+ if ($result->getNumRows() === 0) {
+ throw new NoSuchItemException(__u('El enlace no existe'));
+ }
+
+ return $result->getData();
}
/**
@@ -347,7 +361,13 @@ class PublicLinkService extends Service
*/
public function getHashForItem($itemId)
{
- return $this->publicLinkRepository->getHashForItem($itemId);
+ $result = $this->publicLinkRepository->getHashForItem($itemId);
+
+ if ($result->getNumRows() === 0) {
+ throw new NoSuchItemException(__u('El enlace no existe'));
+ }
+
+ return $result->getData();
}
/**
diff --git a/lib/SP/Services/Track/TrackService.php b/lib/SP/Services/Track/TrackService.php
index 5864e5c2..8e9eb705 100644
--- a/lib/SP/Services/Track/TrackService.php
+++ b/lib/SP/Services/Track/TrackService.php
@@ -2,8 +2,8 @@
/**
* sysPass
*
- * @author nuxsmin
- * @link https://syspass.org
+ * @author nuxsmin
+ * @link https://syspass.org
* @copyright 2012-2018, Rubén Domínguez nuxsmin@$syspass.org
*
* This file is part of sysPass.
@@ -53,6 +53,7 @@ class TrackService extends Service
/**
* @param $source
+ *
* @return TrackRequest
* @throws \SP\Core\Exceptions\InvalidArgumentException
*/
@@ -68,6 +69,7 @@ class TrackService extends Service
/**
* @param $id int|array
+ *
* @return mixed
* @throws \SP\Core\Exceptions\QueryException
* @throws \SP\Core\Exceptions\ConstraintException
@@ -78,31 +80,25 @@ class TrackService extends Service
}
/**
- * @param TrackData $itemData
- * @return bool
+ * @param $id int
+ *
+ * @return TrackData
* @throws \SP\Core\Exceptions\ConstraintException
* @throws \SP\Core\Exceptions\QueryException
*/
- public function update(TrackData $itemData)
- {
- return $this->trackRepository->update($itemData);
- }
-
- /**
- * @param $id int
- * @return TrackData
- */
public function getById($id)
{
- return $this->trackRepository->getById($id);
+ return $this->trackRepository->getById($id)->getData();
}
/**
* @return TrackData[]
+ * @throws \SP\Core\Exceptions\ConstraintException
+ * @throws \SP\Core\Exceptions\QueryException
*/
public function getAll()
{
- return $this->trackRepository->getAll();
+ return $this->trackRepository->getAll()->getDataAsArray();
}
/**
@@ -118,6 +114,7 @@ class TrackService extends Service
* Comprobar los intentos de login
*
* @param TrackRequest $trackRequest
+ *
* @return bool True if delay is performed, false otherwise
* @throws \Exception
*/
@@ -154,15 +151,19 @@ class TrackService extends Service
* Devuelve los tracks de un cliente desde un tiempo y origen determinados
*
* @param TrackRequest $trackRequest
+ *
* @return array
+ * @throws \SP\Core\Exceptions\ConstraintException
+ * @throws \SP\Core\Exceptions\QueryException
*/
public function getTracksForClientFromTime(TrackRequest $trackRequest)
{
- return $this->trackRepository->getTracksForClientFromTime($trackRequest);
+ return $this->trackRepository->getTracksForClientFromTime($trackRequest)->getDataAsArray();
}
/**
* @param TrackRequest $trackRequest
+ *
* @throws \SP\Core\Exceptions\ConstraintException
* @throws \SP\Core\Exceptions\QueryException
*/
diff --git a/lib/SP/Services/UserPassRecover/UserPassRecoverService.php b/lib/SP/Services/UserPassRecover/UserPassRecoverService.php
index a775f951..cbaf9894 100644
--- a/lib/SP/Services/UserPassRecover/UserPassRecoverService.php
+++ b/lib/SP/Services/UserPassRecover/UserPassRecoverService.php
@@ -136,18 +136,21 @@ class UserPassRecoverService extends Service
* Comprobar el hash de recuperación de clave.
*
* @param string $hash
+ *
* @return int
* @throws ServiceException
+ * @throws \SP\Core\Exceptions\ConstraintException
+ * @throws \SP\Core\Exceptions\QueryException
*/
public function getUserIdForHash($hash)
{
$result = $this->userPassRecoverRepository->getUserIdForHash($hash, time() - self::MAX_PASS_RECOVER_TIME);
- if (!is_object($result)) {
+ if ($result->getNumRows() === 0) {
throw new ServiceException(__u('Hash inválido o expirado'), ServiceException::INFO);
}
- return (int)$result->userId;
+ return (int)$result->getData()->userId;
}
/**
diff --git a/lib/SP/Util/Checks.php b/lib/SP/Util/Checks.php
index b90e9a2b..17279788 100644
--- a/lib/SP/Util/Checks.php
+++ b/lib/SP/Util/Checks.php
@@ -150,13 +150,14 @@ class Checks
{
return
(!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off')
- || (int)$_SERVER['SERVER_PORT'] === 443;
+ || (!empty($_SERVER['SERVER_PORT']) && (int)$_SERVER['SERVER_PORT'] === 443);
}
/**
* Comprobar si la petición es Ajax
*
* @param Klein $router
+ *
* @return bool
*/
public static function isAjax(Klein $router)
@@ -169,6 +170,7 @@ class Checks
* Comprobar si la petición es en formato JSON
*
* @param Klein $router
+ *
* @return bool
*/
public static function isJson(Klein $router)
diff --git a/lib/SP/Util/HttpUtil.php b/lib/SP/Util/HttpUtil.php
index 12e230fb..fba2320e 100644
--- a/lib/SP/Util/HttpUtil.php
+++ b/lib/SP/Util/HttpUtil.php
@@ -2,8 +2,8 @@
/**
* sysPass
*
- * @author nuxsmin
- * @link https://syspass.org
+ * @author nuxsmin
+ * @link https://syspass.org
* @copyright 2012-2018, Rubén Domínguez nuxsmin@$syspass.org
*
* This file is part of sysPass.
@@ -130,7 +130,7 @@ class HttpUtil
return $matchesFor;
}
- return $_SERVER['REMOTE_ADDR'];
+ return isset($_SERVER['REMOTE_ADDR']) ? $_SERVER['REMOTE_ADDR'] : '';
}
/**
@@ -164,6 +164,7 @@ class HttpUtil
* Devolver la dirección IP del cliente
*
* @param bool $fullForwarded Devolver la cadena de forward completa
+ *
* @return string|array
*/
public static function getClientAddress($fullForwarded = false)
diff --git a/tests/Repositories/AccountRepositoryTest.php b/tests/Repositories/AccountRepositoryTest.php
index 6b64dd69..5ef1d017 100644
--- a/tests/Repositories/AccountRepositoryTest.php
+++ b/tests/Repositories/AccountRepositoryTest.php
@@ -52,7 +52,7 @@ class AccountRepositoryTest extends DatabaseTestCase
/**
* @var AccountRepository
*/
- private static $accountRepository;
+ private static $repository;
/**
* @throws DependencyException
@@ -67,7 +67,7 @@ class AccountRepositoryTest extends DatabaseTestCase
self::$databaseConnectionData = $dic->get(DatabaseConnectionData::class);
// Inicializar el repositorio
- self::$accountRepository = $dic->get(AccountRepository::class);
+ self::$repository = $dic->get(AccountRepository::class);
}
/**
@@ -81,14 +81,14 @@ class AccountRepositoryTest extends DatabaseTestCase
$this->assertEquals(2, $this->conn->getRowCount('Account'));
// Eliminar un registro y comprobar el total de registros
- $this->assertEquals(1, self::$accountRepository->delete(1));
+ $this->assertEquals(1, self::$repository->delete(1));
$this->assertEquals(1, $this->conn->getRowCount('Account'));
// Eliminar un registro no existente
- $this->assertEquals(0, self::$accountRepository->delete(100));
+ $this->assertEquals(0, self::$repository->delete(100));
// Eliminar un registro y comprobar el total de registros
- $this->assertEquals(1, self::$accountRepository->delete(2));
+ $this->assertEquals(1, self::$repository->delete(2));
$this->assertEquals(0, $this->conn->getRowCount('Account'));
}
@@ -118,16 +118,16 @@ class AccountRepositoryTest extends DatabaseTestCase
$accountRequest->passDateChange = time() + 3600;
// Comprobar que la modificación de la clave es correcta
- $this->assertEquals(1, self::$accountRepository->editPassword($accountRequest));
+ $this->assertEquals(1, self::$repository->editPassword($accountRequest));
- $accountPassData = self::$accountRepository->getPasswordForId(2);
+ $accountPassData = self::$repository->getPasswordForId(2);
$clearPassword = Crypt::decrypt($accountPassData->pass, $accountPassData->key, self::SECURE_KEY_PASSWORD);
// Comprobar que la clave obtenida es igual a la encriptada anteriormente
$this->assertEquals('1234', $clearPassword);
// Comprobar que se devuelve un array vacío
- $this->assertCount(0, self::$accountRepository->getPasswordForId(10));
+ $this->assertCount(0, self::$repository->getPasswordForId(10));
}
/**
@@ -137,17 +137,18 @@ class AccountRepositoryTest extends DatabaseTestCase
*/
public function testGetById()
{
- $account = self::$accountRepository->getById(1);
+ $account = self::$repository->getById(1);
$this->assertInstanceOf(AccountVData::class, $account);
$this->assertEquals(1, $account->getId());
$this->expectException(SPException::class);
- self::$accountRepository->getById(100);
+ self::$repository->getById(100);
}
/**
+ * @depends testGetById
* @throws SPException
*/
public function testUpdate()
@@ -167,9 +168,9 @@ class AccountRepositoryTest extends DatabaseTestCase
$accountRequest->parentId = 0;
$accountRequest->userGroupId = 2;
- $this->assertEquals(1, self::$accountRepository->update($accountRequest));
+ $this->assertEquals(1, self::$repository->update($accountRequest));
- $account = self::$accountRepository->getById(1);
+ $account = self::$repository->getById(1);
$this->assertEquals($accountRequest->name, $account->getName());
$this->assertEquals($accountRequest->login, $account->getLogin());
@@ -207,7 +208,7 @@ class AccountRepositoryTest extends DatabaseTestCase
// Comprobar registros iniciales
$this->assertEquals(2, $this->conn->getRowCount('Account'));
- $this->assertEquals(2, self::$accountRepository->deleteByIdBatch([1, 2, 100]));
+ $this->assertEquals(2, self::$repository->deleteByIdBatch([1, 2, 100]));
// Comprobar registros tras eliminación
$this->assertEquals(0, $this->conn->getRowCount('Account'));
@@ -226,7 +227,7 @@ class AccountRepositoryTest extends DatabaseTestCase
$itemSearchData->setSeachString('Google');
$itemSearchData->setLimitCount(10);
- $result = self::$accountRepository->search($itemSearchData);
+ $result = self::$repository->search($itemSearchData);
$data = $result->getDataAsArray();
$this->assertCount(1, $data);
@@ -240,7 +241,7 @@ class AccountRepositoryTest extends DatabaseTestCase
$itemSearchData->setSeachString('Apple');
$itemSearchData->setLimitCount(1);
- $result = self::$accountRepository->search($itemSearchData);
+ $result = self::$repository->search($itemSearchData);
$data = $result->getDataAsArray();
$this->assertCount(1, $data);
@@ -261,23 +262,24 @@ class AccountRepositoryTest extends DatabaseTestCase
$filter = new QueryCondition();
$filter->addFilter('Account.parentId = 1');
- $this->assertCount(0, self::$accountRepository->getLinked($filter));
+ $this->assertCount(0, self::$repository->getLinked($filter));
}
/**
* Comprobar en incremento del contador de vistas
*
+ * @depends testGetById
* @throws \SP\Core\Exceptions\ConstraintException
* @throws \SP\Core\Exceptions\QueryException
* @throws SPException
*/
public function testIncrementViewCounter()
{
- $accountBefore = self::$accountRepository->getById(1);
+ $accountBefore = self::$repository->getById(1);
- $this->assertTrue(self::$accountRepository->incrementViewCounter(1));
+ $this->assertTrue(self::$repository->incrementViewCounter(1));
- $accountAfter = self::$accountRepository->getById(1);
+ $accountAfter = self::$repository->getById(1);
$this->assertEquals($accountBefore->getCountView() + 1, $accountAfter->getCountView());
}
@@ -290,10 +292,11 @@ class AccountRepositoryTest extends DatabaseTestCase
*/
public function testGetAll()
{
- $this->assertCount(2, self::$accountRepository->getAll());
+ $this->assertCount(2, self::$repository->getAll());
}
/**
+ * @covers \SP\Repositories\Account\AccountRepository::getPasswordForId()
* @throws SPException
* @throws \Defuse\Crypto\Exception\CryptoException
* @throws \SP\Core\Exceptions\ConstraintException
@@ -306,9 +309,9 @@ class AccountRepositoryTest extends DatabaseTestCase
$accountRequest->pass = Crypt::encrypt('1234', $accountRequest->key, self::SECURE_KEY_PASSWORD);
// Comprobar que la modificación de la clave es correcta
- $this->assertTrue(self::$accountRepository->updatePassword($accountRequest));
+ $this->assertTrue(self::$repository->updatePassword($accountRequest));
- $accountPassData = self::$accountRepository->getPasswordForId(2);
+ $accountPassData = self::$repository->getPasswordForId(2);
$clearPassword = Crypt::decrypt($accountPassData->pass, $accountPassData->key, self::SECURE_KEY_PASSWORD);
// Comprobar que la clave obtenida es igual a la encriptada anteriormente
@@ -318,17 +321,18 @@ class AccountRepositoryTest extends DatabaseTestCase
/**
* Comprobar en incremento del contador de desencriptado
*
+ * @depends testGetById
* @throws SPException
* @throws \SP\Core\Exceptions\ConstraintException
* @throws \SP\Core\Exceptions\QueryException
*/
public function testIncrementDecryptCounter()
{
- $accountBefore = self::$accountRepository->getById(1);
+ $accountBefore = self::$repository->getById(1);
- $this->assertTrue(self::$accountRepository->incrementDecryptCounter(1));
+ $this->assertTrue(self::$repository->incrementDecryptCounter(1));
- $accountAfter = self::$accountRepository->getById(1);
+ $accountAfter = self::$repository->getById(1);
$this->assertEquals($accountBefore->getCountDecrypt() + 1, $accountAfter->getCountDecrypt());
}
@@ -341,7 +345,7 @@ class AccountRepositoryTest extends DatabaseTestCase
*/
public function testGetTotalNumAccounts()
{
- $this->assertEquals(2, self::$accountRepository->getTotalNumAccounts()->num);
+ $this->assertEquals(2, self::$repository->getTotalNumAccounts()->num);
}
/**
@@ -363,7 +367,7 @@ class AccountRepositoryTest extends DatabaseTestCase
$queryCondition = new QueryCondition();
$queryCondition->addFilter('Account.isPrivate = 1');
- $this->assertCount(0, self::$accountRepository->getForUser($queryCondition));
+ $this->assertCount(0, self::$repository->getForUser($queryCondition));
}
/**
@@ -374,7 +378,7 @@ class AccountRepositoryTest extends DatabaseTestCase
*/
public function testGetAccountsPassData()
{
- $this->assertCount(2, self::$accountRepository->getAccountsPassData());
+ $this->assertCount(2, self::$repository->getAccountsPassData());
}
/**
@@ -407,7 +411,7 @@ class AccountRepositoryTest extends DatabaseTestCase
// Comprobar registros iniciales
$this->assertEquals(2, $this->conn->getRowCount('Account'));
- self::$accountRepository->create($accountRequest);
+ self::$repository->create($accountRequest);
// Comprobar registros finales
$this->assertEquals(3, $this->conn->getRowCount('Account'));
@@ -451,7 +455,7 @@ class AccountRepositoryTest extends DatabaseTestCase
$searchFilter->setCategoryId(1);
// Comprobar un Id de categoría
- $response = self::$accountRepository->getByFilter($searchFilter);
+ $response = self::$repository->getByFilter($searchFilter);
$this->assertInstanceOf(AccountSearchResponse::class, $response);
$this->assertEquals(1, $response->getCount());
@@ -462,7 +466,7 @@ class AccountRepositoryTest extends DatabaseTestCase
$searchFilter->setLimitCount(10);
$searchFilter->setCategoryId(10);
- $response = self::$accountRepository->getByFilter($searchFilter);
+ $response = self::$repository->getByFilter($searchFilter);
$this->assertInstanceOf(AccountSearchResponse::class, $response);
$this->assertEquals(0, $response->getCount());
@@ -473,7 +477,7 @@ class AccountRepositoryTest extends DatabaseTestCase
$searchFilter->setLimitCount(10);
$searchFilter->setClientId(1);
- $response = self::$accountRepository->getByFilter($searchFilter);
+ $response = self::$repository->getByFilter($searchFilter);
$this->assertInstanceOf(AccountSearchResponse::class, $response);
$this->assertEquals(1, $response->getCount());
@@ -484,7 +488,7 @@ class AccountRepositoryTest extends DatabaseTestCase
$searchFilter->setLimitCount(10);
$searchFilter->setClientId(10);
- $response = self::$accountRepository->getByFilter($searchFilter);
+ $response = self::$repository->getByFilter($searchFilter);
$this->assertInstanceOf(AccountSearchResponse::class, $response);
$this->assertEquals(0, $response->getCount());
@@ -495,7 +499,7 @@ class AccountRepositoryTest extends DatabaseTestCase
$searchFilter->setLimitCount(10);
$searchFilter->setCleanTxtSearch('apple.com');
- $response = self::$accountRepository->getByFilter($searchFilter);
+ $response = self::$repository->getByFilter($searchFilter);
$this->assertInstanceOf(AccountSearchResponse::class, $response);
$this->assertEquals(1, $response->getCount());
@@ -507,7 +511,7 @@ class AccountRepositoryTest extends DatabaseTestCase
$searchFilter->setLimitCount(10);
$searchFilter->setSearchFavorites(true);
- $response = self::$accountRepository->getByFilter($searchFilter);
+ $response = self::$repository->getByFilter($searchFilter);
$this->assertInstanceOf(AccountSearchResponse::class, $response);
$this->assertEquals(0, $response->getCount());
@@ -518,7 +522,7 @@ class AccountRepositoryTest extends DatabaseTestCase
$searchFilter->setLimitCount(10);
$searchFilter->setTagsId([1]);
- $response = self::$accountRepository->getByFilter($searchFilter);
+ $response = self::$repository->getByFilter($searchFilter);
$this->assertInstanceOf(AccountSearchResponse::class, $response);
$this->assertEquals(1, $response->getCount());
diff --git a/tests/Repositories/AccountToTagRepositoryTest.php b/tests/Repositories/AccountToTagRepositoryTest.php
index b5a17199..1b4b8794 100644
--- a/tests/Repositories/AccountToTagRepositoryTest.php
+++ b/tests/Repositories/AccountToTagRepositoryTest.php
@@ -45,7 +45,7 @@ class AccountToTagRepositoryTest extends DatabaseTestCase
/**
* @var AccountToTagRepository
*/
- private static $accountToTagRepository;
+ private static $repository;
/**
* @throws DependencyException
@@ -60,12 +60,25 @@ class AccountToTagRepositoryTest extends DatabaseTestCase
self::$databaseConnectionData = $dic->get(DatabaseConnectionData::class);
// Inicializar el repositorio
- self::$accountToTagRepository = $dic->get(AccountToTagRepository::class);
+ self::$repository = $dic->get(AccountToTagRepository::class);
+ }
+
+ /**
+ * Comprobar la obtención de etiquetas por Id de cuenta
+ *
+ * @throws ConstraintException
+ * @throws \SP\Core\Exceptions\QueryException
+ */
+ public function testGetTagsByAccountId()
+ {
+ $this->assertCount(1, self::$repository->getTagsByAccountId(1));
+ $this->assertCount(0, self::$repository->getTagsByAccountId(10));
}
/**
* Comprobar la creación de etiquetas asociadas a las cuentas
*
+ * @depends testGetTagsByAccountId
* @throws \SP\Core\Exceptions\ConstraintException
* @throws \SP\Core\Exceptions\QueryException
*/
@@ -75,9 +88,9 @@ class AccountToTagRepositoryTest extends DatabaseTestCase
$accountRequest->id = 1;
$accountRequest->tags = [2, 3];
- $this->assertEquals(2, self::$accountToTagRepository->add($accountRequest));
+ $this->assertEquals(2, self::$repository->add($accountRequest));
- $tags = self::$accountToTagRepository->getTagsByAccountId($accountRequest->id);
+ $tags = self::$repository->getTagsByAccountId($accountRequest->id);
$this->assertCount(3, $tags);
$this->assertInstanceOf(ItemData::class, $tags[0]);
@@ -88,11 +101,11 @@ class AccountToTagRepositoryTest extends DatabaseTestCase
$accountRequest->tags = [1];
- self::$accountToTagRepository->add($accountRequest);
+ self::$repository->add($accountRequest);
$accountRequest->id = 10;
- self::$accountToTagRepository->add($accountRequest);
+ self::$repository->add($accountRequest);
}
@@ -104,28 +117,17 @@ class AccountToTagRepositoryTest extends DatabaseTestCase
*/
public function testDeleteByAccountId()
{
- $this->assertEquals(1, self::$accountToTagRepository->deleteByAccountId(1));
+ $this->assertEquals(1, self::$repository->deleteByAccountId(1));
- $this->assertCount(0, self::$accountToTagRepository->getTagsByAccountId(1));
+ $this->assertCount(0, self::$repository->getTagsByAccountId(1));
- $this->assertEquals(0, self::$accountToTagRepository->deleteByAccountId(10));
- }
-
- /**
- * Comprobar la obtención de etiquetas por Id de cuenta
- *
- * @throws ConstraintException
- * @throws \SP\Core\Exceptions\QueryException
- */
- public function testGetTagsByAccountId()
- {
- $this->assertCount(1, self::$accountToTagRepository->getTagsByAccountId(1));
- $this->assertCount(0, self::$accountToTagRepository->getTagsByAccountId(10));
+ $this->assertEquals(0, self::$repository->deleteByAccountId(10));
}
/**
* Comprobar la actualización de etiquetas por Id de cuenta
*
+ * @depends testGetTagsByAccountId
* @throws \SP\Core\Exceptions\ConstraintException
* @throws \SP\Core\Exceptions\QueryException
*/
@@ -135,9 +137,9 @@ class AccountToTagRepositoryTest extends DatabaseTestCase
$accountRequest->id = 1;
$accountRequest->tags = [1, 2];
- self::$accountToTagRepository->update($accountRequest);
+ self::$repository->update($accountRequest);
- $tags = self::$accountToTagRepository->getTagsByAccountId($accountRequest->id);
+ $tags = self::$repository->getTagsByAccountId($accountRequest->id);
$this->assertCount(2, $tags);
$this->assertInstanceOf(ItemData::class, $tags[0]);
diff --git a/tests/Repositories/AccountToUserGroupRepositoryTest.php b/tests/Repositories/AccountToUserGroupRepositoryTest.php
index a5bda9e4..dcb3dc6e 100644
--- a/tests/Repositories/AccountToUserGroupRepositoryTest.php
+++ b/tests/Repositories/AccountToUserGroupRepositoryTest.php
@@ -45,7 +45,7 @@ class AccountToUserGroupRepositoryTest extends DatabaseTestCase
/**
* @var AccountToUserGroupRepository
*/
- private static $accountToUserGroupRepository;
+ private static $repository;
/**
* @throws DependencyException
@@ -60,51 +60,18 @@ class AccountToUserGroupRepositoryTest extends DatabaseTestCase
self::$databaseConnectionData = $dic->get(DatabaseConnectionData::class);
// Inicializar el repositorio
- self::$accountToUserGroupRepository = $dic->get(AccountToUserGroupRepository::class);
- }
-
- /**
- * Comprobar la actualización de grupos de usuarios por Id de cuenta
- *
- * @throws \SP\Core\Exceptions\ConstraintException
- * @throws \SP\Core\Exceptions\QueryException
- */
- public function testUpdate()
- {
- $accountRequest = new AccountRequest();
- $accountRequest->id = 1;
- $accountRequest->userGroupsView = [1, 2, 3];
-
- $this->assertEquals(3, self::$accountToUserGroupRepository->update($accountRequest));
-
- $userGroups = self::$accountToUserGroupRepository->getUserGroupsByAccountId($accountRequest->id);
-
- $this->assertCount(3, $userGroups);
- $this->assertInstanceOf(ItemData::class, $userGroups[0]);
- $this->assertEquals(0, (int)$userGroups[0]->isEdit);
- $this->assertInstanceOf(ItemData::class, $userGroups[1]);
- $this->assertEquals(0, (int)$userGroups[1]->isEdit);
- $this->assertInstanceOf(ItemData::class, $userGroups[2]);
- $this->assertEquals(0, (int)$userGroups[2]->isEdit);
-
- $this->expectException(ConstraintException::class);
-
- $accountRequest->userGroupsView = [10];
-
- self::$accountToUserGroupRepository->update($accountRequest);
-
- $accountRequest->id = 3;
- $accountRequest->userGroupsView = [1, 2, 3];
-
- self::$accountToUserGroupRepository->update($accountRequest);
+ self::$repository = $dic->get(AccountToUserGroupRepository::class);
}
/**
* Comprobar la obtención de grupos de usuarios por Id de cuenta
+ *
+ * @throws ConstraintException
+ * @throws \SP\Core\Exceptions\QueryException
*/
- public function testGetUsersByAccountId()
+ public function testGetUserGroupsByAccountId()
{
- $userGroups = self::$accountToUserGroupRepository->getUserGroupsByAccountId(1);
+ $userGroups = self::$repository->getUserGroupsByAccountId(1);
$this->assertCount(1, $userGroups);
$this->assertInstanceOf(ItemData::class, $userGroups[0]);
@@ -121,7 +88,7 @@ class AccountToUserGroupRepositoryTest extends DatabaseTestCase
$this->assertCount(1, $userGroupsEdit);
- $userGroups = self::$accountToUserGroupRepository->getUserGroupsByAccountId(2);
+ $userGroups = self::$repository->getUserGroupsByAccountId(2);
$this->assertCount(1, $userGroups);
$this->assertInstanceOf(ItemData::class, $userGroups[0]);
@@ -138,14 +105,52 @@ class AccountToUserGroupRepositoryTest extends DatabaseTestCase
$this->assertCount(0, $userGroupsEdit);
- $userGroups = self::$accountToUserGroupRepository->getUserGroupsByAccountId(3);
+ $userGroups = self::$repository->getUserGroupsByAccountId(3);
$this->assertCount(0, $userGroups);
}
+ /**
+ * Comprobar la actualización de grupos de usuarios por Id de cuenta
+ *
+ * @depends testGetUserGroupsByAccountId
+ * @throws \SP\Core\Exceptions\ConstraintException
+ * @throws \SP\Core\Exceptions\QueryException
+ */
+ public function testUpdate()
+ {
+ $accountRequest = new AccountRequest();
+ $accountRequest->id = 1;
+ $accountRequest->userGroupsView = [1, 2, 3];
+
+ $this->assertEquals(3, self::$repository->update($accountRequest));
+
+ $userGroups = self::$repository->getUserGroupsByAccountId($accountRequest->id);
+
+ $this->assertCount(3, $userGroups);
+ $this->assertInstanceOf(ItemData::class, $userGroups[0]);
+ $this->assertEquals(0, (int)$userGroups[0]->isEdit);
+ $this->assertInstanceOf(ItemData::class, $userGroups[1]);
+ $this->assertEquals(0, (int)$userGroups[1]->isEdit);
+ $this->assertInstanceOf(ItemData::class, $userGroups[2]);
+ $this->assertEquals(0, (int)$userGroups[2]->isEdit);
+
+ $this->expectException(ConstraintException::class);
+
+ $accountRequest->userGroupsView = [10];
+
+ self::$repository->update($accountRequest);
+
+ $accountRequest->id = 3;
+ $accountRequest->userGroupsView = [1, 2, 3];
+
+ self::$repository->update($accountRequest);
+ }
+
/**
* Comprobar la actualización de grupos de usuarios con permisos de modificación por Id de cuenta
*
+ * @depends testGetUserGroupsByAccountId
* @throws \SP\Core\Exceptions\ConstraintException
* @throws \SP\Core\Exceptions\QueryException
*/
@@ -155,9 +160,9 @@ class AccountToUserGroupRepositoryTest extends DatabaseTestCase
$accountRequest->id = 2;
$accountRequest->userGroupsEdit = [2, 3];
- $this->assertEquals(3, self::$accountToUserGroupRepository->updateEdit($accountRequest));
+ $this->assertEquals(3, self::$repository->updateEdit($accountRequest));
- $userGroups = self::$accountToUserGroupRepository->getUserGroupsByAccountId($accountRequest->id);
+ $userGroups = self::$repository->getUserGroupsByAccountId($accountRequest->id);
$this->assertCount(2, $userGroups);
$this->assertInstanceOf(ItemData::class, $userGroups[0]);
@@ -170,27 +175,28 @@ class AccountToUserGroupRepositoryTest extends DatabaseTestCase
// Comprobar que se lanza excepción al añadir usuarios no existentes
$accountRequest->userGroupsEdit = [10];
- self::$accountToUserGroupRepository->updateEdit($accountRequest);
+ self::$repository->updateEdit($accountRequest);
// Comprobar que se lanza excepción al añadir usuarios a cuenta no existente
$accountRequest->id = 3;
$accountRequest->userGroupsEdit = [2, 3];
- self::$accountToUserGroupRepository->updateEdit($accountRequest);
+ self::$repository->updateEdit($accountRequest);
}
/**
* Comprobar la eliminación de grupos de usuarios por Id de cuenta
*
+ * @depends testGetUserGroupsByAccountId
* @throws \SP\Core\Exceptions\ConstraintException
* @throws \SP\Core\Exceptions\QueryException
*/
public function testDeleteByAccountId()
{
- $this->assertEquals(1, self::$accountToUserGroupRepository->deleteByAccountId(1));
- $this->assertCount(0, self::$accountToUserGroupRepository->getUserGroupsByAccountId(1));
+ $this->assertEquals(1, self::$repository->deleteByAccountId(1));
+ $this->assertCount(0, self::$repository->getUserGroupsByAccountId(1));
- $this->assertEquals(0, self::$accountToUserGroupRepository->deleteByAccountId(10));
+ $this->assertEquals(0, self::$repository->deleteByAccountId(10));
$this->assertEquals(1, $this->conn->getRowCount('AccountToUserGroup'));
}
@@ -198,6 +204,7 @@ class AccountToUserGroupRepositoryTest extends DatabaseTestCase
/**
* Comprobar la insercción de grupos de usuarios con permisos de modificación por Id de cuenta
*
+ * @depends testGetUserGroupsByAccountId
* @throws \SP\Core\Exceptions\ConstraintException
* @throws \SP\Core\Exceptions\QueryException
*/
@@ -207,9 +214,9 @@ class AccountToUserGroupRepositoryTest extends DatabaseTestCase
$accountRequest->id = 2;
$accountRequest->userGroupsEdit = [1, 2, 3];
- self::$accountToUserGroupRepository->addEdit($accountRequest);
+ self::$repository->addEdit($accountRequest);
- $userGroups = self::$accountToUserGroupRepository->getUserGroupsByAccountId($accountRequest->id);
+ $userGroups = self::$repository->getUserGroupsByAccountId($accountRequest->id);
$this->assertCount(3, $userGroups);
$this->assertInstanceOf(ItemData::class, $userGroups[0]);
@@ -221,18 +228,19 @@ class AccountToUserGroupRepositoryTest extends DatabaseTestCase
// Comprobar que se lanza excepción al añadir usuarios no existentes
$accountRequest->userGroupsEdit = [10];
- self::$accountToUserGroupRepository->addEdit($accountRequest);
+ self::$repository->addEdit($accountRequest);
// Comprobar que se lanza excepción al añadir grupos de usuarios a cuenta no existente
$accountRequest->id = 3;
$accountRequest->userGroupsEdit = [1, 2, 3];
- self::$accountToUserGroupRepository->addEdit($accountRequest);
+ self::$repository->addEdit($accountRequest);
}
/**
* Comprobar la insercción de grupos de usuarios por Id de cuenta
*
+ * @depends testGetUserGroupsByAccountId
* @throws \SP\Core\Exceptions\ConstraintException
* @throws \SP\Core\Exceptions\QueryException
*/
@@ -242,9 +250,9 @@ class AccountToUserGroupRepositoryTest extends DatabaseTestCase
$accountRequest->id = 2;
$accountRequest->userGroupsView = [1, 2, 3];
- $this->assertEquals(3, self::$accountToUserGroupRepository->add($accountRequest));
+ $this->assertEquals(3, self::$repository->add($accountRequest));
- $userGroups = self::$accountToUserGroupRepository->getUserGroupsByAccountId($accountRequest->id);
+ $userGroups = self::$repository->getUserGroupsByAccountId($accountRequest->id);
$this->assertCount(3, $userGroups);
$this->assertInstanceOf(ItemData::class, $userGroups[0]);
@@ -256,45 +264,49 @@ class AccountToUserGroupRepositoryTest extends DatabaseTestCase
// Comprobar que se lanza excepción al añadir usuarios no existentes
$accountRequest->userGroupsView = [10];
- self::$accountToUserGroupRepository->add($accountRequest);
+ self::$repository->add($accountRequest);
// Comprobar que se lanza excepción al añadir grupos de usuarios a cuenta no existente
$accountRequest->id = 3;
$accountRequest->userGroupsView = [1, 2, 3];
- self::$accountToUserGroupRepository->add($accountRequest);
+ self::$repository->add($accountRequest);
}
/**
* Comprobar la eliminación de grupos de usuarios con permisos de modificación por Id de cuenta
*
+ * @depends testGetUserGroupsByAccountId
* @throws \SP\Core\Exceptions\ConstraintException
* @throws \SP\Core\Exceptions\QueryException
*/
public function testDeleteEditByAccountId()
{
- $this->assertEquals(1, self::$accountToUserGroupRepository->deleteEditByAccountId(1));
- $this->assertCount(0, self::$accountToUserGroupRepository->getUserGroupsByAccountId(1));
+ $this->assertEquals(1, self::$repository->deleteEditByAccountId(1));
+ $this->assertCount(0, self::$repository->getUserGroupsByAccountId(1));
- $this->assertEquals(0, self::$accountToUserGroupRepository->deleteEditByAccountId(10));
+ $this->assertEquals(0, self::$repository->deleteEditByAccountId(10));
$this->assertEquals(1, $this->conn->getRowCount('AccountToUserGroup'));
}
/**
* Comprobar la obtención de grupos de usuarios por Id de grupo
+ *
+ * @throws ConstraintException
+ * @throws \SP\Core\Exceptions\QueryException
*/
public function testGetUserGroupsByUserGroupId()
{
- $userGroups = self::$accountToUserGroupRepository->getUserGroupsByUserGroupId(2);
+ $userGroups = self::$repository->getUserGroupsByUserGroupId(2);
$this->assertCount(2, $userGroups);
- $userGroups = self::$accountToUserGroupRepository->getUserGroupsByUserGroupId(3);
+ $userGroups = self::$repository->getUserGroupsByUserGroupId(3);
$this->assertCount(0, $userGroups);
- $userGroups = self::$accountToUserGroupRepository->getUserGroupsByUserGroupId(10);
+ $userGroups = self::$repository->getUserGroupsByUserGroupId(10);
$this->assertCount(0, $userGroups);
}
@@ -307,10 +319,10 @@ class AccountToUserGroupRepositoryTest extends DatabaseTestCase
*/
public function testDeleteByUserGroupId()
{
- $this->assertEquals(2, self::$accountToUserGroupRepository->deleteByUserGroupId(2));
+ $this->assertEquals(2, self::$repository->deleteByUserGroupId(2));
- $this->assertEquals(0, self::$accountToUserGroupRepository->deleteByUserGroupId(1));
+ $this->assertEquals(0, self::$repository->deleteByUserGroupId(1));
- $this->assertEquals(0, self::$accountToUserGroupRepository->deleteByUserGroupId(10));
+ $this->assertEquals(0, self::$repository->deleteByUserGroupId(10));
}
}
diff --git a/tests/Repositories/AccountToUserRepositoryTest.php b/tests/Repositories/AccountToUserRepositoryTest.php
index a9c71a9f..3531f4bf 100644
--- a/tests/Repositories/AccountToUserRepositoryTest.php
+++ b/tests/Repositories/AccountToUserRepositoryTest.php
@@ -45,7 +45,7 @@ class AccountToUserRepositoryTest extends DatabaseTestCase
/**
* @var AccountToUserRepository
*/
- private static $accountToUserRepository;
+ private static $repository;
/**
* @throws DependencyException
@@ -60,51 +60,18 @@ class AccountToUserRepositoryTest extends DatabaseTestCase
self::$databaseConnectionData = $dic->get(DatabaseConnectionData::class);
// Inicializar el repositorio
- self::$accountToUserRepository = $dic->get(AccountToUserRepository::class);
- }
-
- /**
- * Comprobar la actualización de usuarios por Id de cuenta
- *
- * @throws \SP\Core\Exceptions\ConstraintException
- * @throws \SP\Core\Exceptions\QueryException
- */
- public function testUpdate()
- {
- $accountRequest = new AccountRequest();
- $accountRequest->id = 1;
- $accountRequest->usersView = [1, 2, 3];
-
- self::$accountToUserRepository->update($accountRequest);
-
- $users = self::$accountToUserRepository->getUsersByAccountId($accountRequest->id);
-
- $this->assertCount(3, $users);
- $this->assertInstanceOf(ItemData::class, $users[0]);
- $this->assertEquals(0, (int)$users[0]->isEdit);
- $this->assertInstanceOf(ItemData::class, $users[1]);
- $this->assertEquals(0, (int)$users[1]->isEdit);
- $this->assertInstanceOf(ItemData::class, $users[2]);
- $this->assertEquals(0, (int)$users[2]->isEdit);
-
- $this->expectException(ConstraintException::class);
-
- $accountRequest->usersView = [10];
-
- self::$accountToUserRepository->update($accountRequest);
-
- $accountRequest->id = 3;
- $accountRequest->usersView = [1, 2, 3];
-
- self::$accountToUserRepository->update($accountRequest);
+ self::$repository = $dic->get(AccountToUserRepository::class);
}
/**
* Comprobar la obtención de usuarios por Id de cuenta
+ *
+ * @throws ConstraintException
+ * @throws \SP\Core\Exceptions\QueryException
*/
public function testGetUsersByAccountId()
{
- $users = self::$accountToUserRepository->getUsersByAccountId(1);
+ $users = self::$repository->getUsersByAccountId(1);
$this->assertCount(1, $users);
$this->assertInstanceOf(ItemData::class, $users[0]);
@@ -121,7 +88,7 @@ class AccountToUserRepositoryTest extends DatabaseTestCase
$this->assertCount(1, $usersEdit);
- $users = self::$accountToUserRepository->getUsersByAccountId(2);
+ $users = self::$repository->getUsersByAccountId(2);
$this->assertCount(1, $users);
$this->assertInstanceOf(ItemData::class, $users[0]);
@@ -138,14 +105,52 @@ class AccountToUserRepositoryTest extends DatabaseTestCase
$this->assertCount(0, $usersEdit);
- $users = self::$accountToUserRepository->getUsersByAccountId(3);
+ $users = self::$repository->getUsersByAccountId(3);
$this->assertCount(0, $users);
}
+ /**
+ * Comprobar la actualización de usuarios por Id de cuenta
+ *
+ * @depends testGetUsersByAccountId
+ * @throws \SP\Core\Exceptions\ConstraintException
+ * @throws \SP\Core\Exceptions\QueryException
+ */
+ public function testUpdate()
+ {
+ $accountRequest = new AccountRequest();
+ $accountRequest->id = 1;
+ $accountRequest->usersView = [1, 2, 3];
+
+ self::$repository->update($accountRequest);
+
+ $users = self::$repository->getUsersByAccountId($accountRequest->id);
+
+ $this->assertCount(3, $users);
+ $this->assertInstanceOf(ItemData::class, $users[0]);
+ $this->assertEquals(0, (int)$users[0]->isEdit);
+ $this->assertInstanceOf(ItemData::class, $users[1]);
+ $this->assertEquals(0, (int)$users[1]->isEdit);
+ $this->assertInstanceOf(ItemData::class, $users[2]);
+ $this->assertEquals(0, (int)$users[2]->isEdit);
+
+ $this->expectException(ConstraintException::class);
+
+ $accountRequest->usersView = [10];
+
+ self::$repository->update($accountRequest);
+
+ $accountRequest->id = 3;
+ $accountRequest->usersView = [1, 2, 3];
+
+ self::$repository->update($accountRequest);
+ }
+
/**
* Comprobar la actualización de usuarios con permisos de modificación por Id de cuenta
*
+ * @depends testGetUsersByAccountId
* @throws \SP\Core\Exceptions\ConstraintException
* @throws \SP\Core\Exceptions\QueryException
*/
@@ -155,9 +160,9 @@ class AccountToUserRepositoryTest extends DatabaseTestCase
$accountRequest->id = 2;
$accountRequest->usersEdit = [2, 3];
- self::$accountToUserRepository->updateEdit($accountRequest);
+ self::$repository->updateEdit($accountRequest);
- $users = self::$accountToUserRepository->getUsersByAccountId($accountRequest->id);
+ $users = self::$repository->getUsersByAccountId($accountRequest->id);
$this->assertCount(2, $users);
$this->assertInstanceOf(ItemData::class, $users[0]);
@@ -170,27 +175,28 @@ class AccountToUserRepositoryTest extends DatabaseTestCase
// Comprobar que se lanza excepción al añadir usuarios no existentes
$accountRequest->usersEdit = [10];
- self::$accountToUserRepository->updateEdit($accountRequest);
+ self::$repository->updateEdit($accountRequest);
// Comprobar que se lanza excepción al añadir usuarios a cuenta no existente
$accountRequest->id = 3;
$accountRequest->usersEdit = [2, 3];
- self::$accountToUserRepository->updateEdit($accountRequest);
+ self::$repository->updateEdit($accountRequest);
}
/**
* Comprobar la eliminación de usuarios por Id de cuenta
*
+ * @depends testGetUsersByAccountId
* @throws \SP\Core\Exceptions\ConstraintException
* @throws \SP\Core\Exceptions\QueryException
*/
public function testDeleteByAccountId()
{
- $this->assertEquals(1, self::$accountToUserRepository->deleteByAccountId(1));
- $this->assertCount(0, self::$accountToUserRepository->getUsersByAccountId(1));
+ $this->assertEquals(1, self::$repository->deleteByAccountId(1));
+ $this->assertCount(0, self::$repository->getUsersByAccountId(1));
- $this->assertEquals(0, self::$accountToUserRepository->deleteByAccountId(10));
+ $this->assertEquals(0, self::$repository->deleteByAccountId(10));
$this->assertEquals(1, $this->conn->getRowCount('AccountToUser'));
}
@@ -198,6 +204,7 @@ class AccountToUserRepositoryTest extends DatabaseTestCase
/**
* Comprobar la insercción de usuarios con permisos de modificación por Id de cuenta
*
+ * @depends testGetUsersByAccountId
* @throws \SP\Core\Exceptions\ConstraintException
* @throws \SP\Core\Exceptions\QueryException
*/
@@ -207,9 +214,9 @@ class AccountToUserRepositoryTest extends DatabaseTestCase
$accountRequest->id = 2;
$accountRequest->usersEdit = [1, 2, 3];
- self::$accountToUserRepository->addEdit($accountRequest);
+ self::$repository->addEdit($accountRequest);
- $users = self::$accountToUserRepository->getUsersByAccountId($accountRequest->id);
+ $users = self::$repository->getUsersByAccountId($accountRequest->id);
$this->assertCount(3, $users);
$this->assertInstanceOf(ItemData::class, $users[0]);
@@ -221,18 +228,19 @@ class AccountToUserRepositoryTest extends DatabaseTestCase
// Comprobar que se lanza excepción al añadir usuarios no existentes
$accountRequest->usersEdit = [10];
- self::$accountToUserRepository->addEdit($accountRequest);
+ self::$repository->addEdit($accountRequest);
// Comprobar que se lanza excepción al añadir usuarios a cuenta no existente
$accountRequest->id = 3;
$accountRequest->usersEdit = [1, 2, 3];
- self::$accountToUserRepository->addEdit($accountRequest);
+ self::$repository->addEdit($accountRequest);
}
/**
* Comprobar la insercción de usuarios por Id de cuenta
*
+ * @depends testGetUsersByAccountId
* @throws \SP\Core\Exceptions\ConstraintException
* @throws \SP\Core\Exceptions\QueryException
*/
@@ -242,9 +250,9 @@ class AccountToUserRepositoryTest extends DatabaseTestCase
$accountRequest->id = 2;
$accountRequest->usersView = [1, 2, 3];
- self::$accountToUserRepository->add($accountRequest);
+ self::$repository->add($accountRequest);
- $users = self::$accountToUserRepository->getUsersByAccountId($accountRequest->id);
+ $users = self::$repository->getUsersByAccountId($accountRequest->id);
$this->assertCount(3, $users);
$this->assertInstanceOf(ItemData::class, $users[0]);
@@ -256,27 +264,28 @@ class AccountToUserRepositoryTest extends DatabaseTestCase
// Comprobar que se lanza excepción al añadir usuarios no existentes
$accountRequest->usersView = [10];
- self::$accountToUserRepository->add($accountRequest);
+ self::$repository->add($accountRequest);
// Comprobar que se lanza excepción al añadir usuarios a cuenta no existente
$accountRequest->id = 3;
$accountRequest->usersView = [1, 2, 3];
- self::$accountToUserRepository->add($accountRequest);
+ self::$repository->add($accountRequest);
}
/**
* Comprobar la eliminación de usuarios con permisos de modificación por Id de cuenta
*
+ * @depends testGetUsersByAccountId
* @throws \SP\Core\Exceptions\ConstraintException
* @throws \SP\Core\Exceptions\QueryException
*/
public function testDeleteEditByAccountId()
{
- $this->assertEquals(1, self::$accountToUserRepository->deleteEditByAccountId(1));
- $this->assertCount(0, self::$accountToUserRepository->getUsersByAccountId(1));
+ $this->assertEquals(1, self::$repository->deleteEditByAccountId(1));
+ $this->assertCount(0, self::$repository->getUsersByAccountId(1));
- $this->assertEquals(0, self::$accountToUserRepository->deleteEditByAccountId(10));
+ $this->assertEquals(0, self::$repository->deleteEditByAccountId(10));
$this->assertEquals(1, $this->conn->getRowCount('AccountToUser'));
}
diff --git a/tests/Repositories/AuthTokenRepositoryTest.php b/tests/Repositories/AuthTokenRepositoryTest.php
index 2daf3336..cfbbef63 100644
--- a/tests/Repositories/AuthTokenRepositoryTest.php
+++ b/tests/Repositories/AuthTokenRepositoryTest.php
@@ -51,7 +51,7 @@ class AuthTokenRepositoryTest extends DatabaseTestCase
/**
* @var AuthTokenRepository
*/
- private static $authTokenRepository;
+ private static $repository;
/**
* @throws DependencyException
@@ -66,12 +66,16 @@ class AuthTokenRepositoryTest extends DatabaseTestCase
self::$databaseConnectionData = $dic->get(DatabaseConnectionData::class);
// Inicializar el repositorio
- self::$authTokenRepository = $dic->get(AuthTokenRepository::class);
+ self::$repository = $dic->get(AuthTokenRepository::class);
}
+ /**
+ * @throws \SP\Core\Exceptions\ConstraintException
+ * @throws \SP\Core\Exceptions\QueryException
+ */
public function testGetById()
{
- $authToken = self::$authTokenRepository->getById(1);
+ $authToken = self::$repository->getById(1);
$this->assertInstanceOf(AuthTokenData::class, $authToken);
$this->assertEquals(1, $authToken->getId());
@@ -79,7 +83,7 @@ class AuthTokenRepositoryTest extends DatabaseTestCase
$this->assertEquals(self::AUTH_TOKEN, $authToken->getToken());
$this->assertNull($authToken->getHash());
- $authToken = self::$authTokenRepository->getById(2);
+ $authToken = self::$repository->getById(2);
$this->assertInstanceOf(AuthTokenData::class, $authToken);
$this->assertEquals(2, $authToken->getId());
@@ -88,11 +92,15 @@ class AuthTokenRepositoryTest extends DatabaseTestCase
$this->assertTrue(Hash::checkHashKey(self::AUTH_TOKEN_PASS, $authToken->getHash()));
}
+ /**
+ * @throws \SP\Core\Exceptions\ConstraintException
+ * @throws \SP\Core\Exceptions\QueryException
+ */
public function testGetTokenByUserId()
{
- $this->assertEquals(self::AUTH_TOKEN, self::$authTokenRepository->getTokenByUserId(1));
+ $this->assertEquals(self::AUTH_TOKEN, self::$repository->getTokenByUserId(1));
- $this->assertNull(self::$authTokenRepository->getTokenByUserId(2));
+ $this->assertNull(self::$repository->getTokenByUserId(2));
}
/**
@@ -100,6 +108,30 @@ class AuthTokenRepositoryTest extends DatabaseTestCase
* @throws \SP\Core\Exceptions\ConstraintException
* @throws \SP\Core\Exceptions\QueryException
*/
+ public function testGetTokenByToken()
+ {
+ $authToken = self::$repository->getTokenByToken(ActionsInterface::ACCOUNT_VIEW_PASS, self::AUTH_TOKEN);
+
+ $this->assertEquals(2, $authToken->getId());
+ $this->assertEquals(ActionsInterface::ACCOUNT_VIEW_PASS, $authToken->getActionId());
+ $this->assertTrue(Hash::checkHashKey(self::AUTH_TOKEN_PASS, $authToken->getHash()));
+ $this->assertNotEmpty($authToken->getVault());
+
+ /** @var Vault $vault */
+ $vault = Util::unserialize(Vault::class, $authToken->getVault());
+ $this->assertEquals('12345678900', $vault->getData(self::AUTH_TOKEN_PASS . self::AUTH_TOKEN));
+
+ $this->expectException(CryptoException::class);
+
+ $vault->getData(1234);
+ }
+
+ /**
+ * @depends testGetTokenByToken
+ * @throws CryptoException
+ * @throws \SP\Core\Exceptions\ConstraintException
+ * @throws \SP\Core\Exceptions\QueryException
+ */
public function testRefreshVaultByUserId()
{
$vault = Vault::getInstance()
@@ -107,9 +139,9 @@ class AuthTokenRepositoryTest extends DatabaseTestCase
->getSerialized();
$hash = Hash::hashKey(self::AUTH_TOKEN_PASS);
- $this->assertEquals(1, self::$authTokenRepository->refreshVaultByUserId(1, $vault, $hash));
+ $this->assertEquals(1, self::$repository->refreshVaultByUserId(1, $vault, $hash));
- $authToken = self::$authTokenRepository->getTokenByToken(ActionsInterface::ACCOUNT_VIEW_PASS, self::AUTH_TOKEN);
+ $authToken = self::$repository->getTokenByToken(ActionsInterface::ACCOUNT_VIEW_PASS, self::AUTH_TOKEN);
$this->assertInstanceOf(AuthTokenData::class, $authToken);
$this->assertTrue(Hash::checkHashKey(self::AUTH_TOKEN_PASS, $authToken->getHash()));
@@ -121,6 +153,7 @@ class AuthTokenRepositoryTest extends DatabaseTestCase
}
/**
+ * @depends testGetTokenByUserId
* @throws \Defuse\Crypto\Exception\EnvironmentIsBrokenException
* @throws \SP\Core\Exceptions\ConstraintException
* @throws \SP\Core\Exceptions\QueryException
@@ -130,17 +163,17 @@ class AuthTokenRepositoryTest extends DatabaseTestCase
$token = Util::generateRandomBytes();
// Comprobar actualización con usuario que existe
- $this->assertEquals(2, self::$authTokenRepository->refreshTokenByUserId(1, $token));
- $this->assertEquals($token, self::$authTokenRepository->getTokenByUserId(1));
+ $this->assertEquals(2, self::$repository->refreshTokenByUserId(1, $token));
+ $this->assertEquals($token, self::$repository->getTokenByUserId(1));
// Comprobar actualización con usuario que NO existe
- $this->assertEquals(0, self::$authTokenRepository->refreshTokenByUserId(2, $token));
- $this->assertNull(self::$authTokenRepository->getTokenByUserId(2));
+ $this->assertEquals(0, self::$repository->refreshTokenByUserId(2, $token));
+ $this->assertNull(self::$repository->getTokenByUserId(2));
}
/**
- * @covers \SP\Repositories\AuthToken\AuthTokenRepository::checkDuplicatedOnUpdate()
- *
+ * @covers \SP\Repositories\AuthToken\AuthTokenRepository::checkDuplicatedOnUpdate()
+ * @depends testGetTokenByToken
* @throws \Defuse\Crypto\Exception\EnvironmentIsBrokenException
* @throws \SP\Core\Exceptions\ConstraintException
* @throws \SP\Core\Exceptions\QueryException
@@ -162,9 +195,9 @@ class AuthTokenRepositoryTest extends DatabaseTestCase
$authTokenData->setVault($vault);
$authTokenData->setUserId(2);
- $this->assertEquals(1, self::$authTokenRepository->update($authTokenData));
+ $this->assertEquals(1, self::$repository->update($authTokenData));
- $result = self::$authTokenRepository->getTokenByToken(ActionsInterface::ACCOUNT_CREATE, $token);
+ $result = self::$repository->getTokenByToken(ActionsInterface::ACCOUNT_CREATE, $token);
$this->assertInstanceOf(AuthTokenData::class, $result);
$this->assertEquals(ActionsInterface::ACCOUNT_CREATE, $result->getActionId());
@@ -177,30 +210,7 @@ class AuthTokenRepositoryTest extends DatabaseTestCase
$authTokenData->setId(2);
$authTokenData->setUserId(1);
- self::$authTokenRepository->update($authTokenData);
- }
-
- /**
- * @throws CryptoException
- * @throws \SP\Core\Exceptions\ConstraintException
- * @throws \SP\Core\Exceptions\QueryException
- */
- public function testGetTokenByToken()
- {
- $authToken = self::$authTokenRepository->getTokenByToken(ActionsInterface::ACCOUNT_VIEW_PASS, self::AUTH_TOKEN);
-
- $this->assertEquals(2, $authToken->getId());
- $this->assertEquals(ActionsInterface::ACCOUNT_VIEW_PASS, $authToken->getActionId());
- $this->assertTrue(Hash::checkHashKey(self::AUTH_TOKEN_PASS, $authToken->getHash()));
- $this->assertNotEmpty($authToken->getVault());
-
- /** @var Vault $vault */
- $vault = Util::unserialize(Vault::class, $authToken->getVault());
- $this->assertEquals('12345678900', $vault->getData(self::AUTH_TOKEN_PASS . self::AUTH_TOKEN));
-
- $this->expectException(CryptoException::class);
-
- $vault->getData(1234);
+ self::$repository->update($authTokenData);
}
/**
@@ -212,7 +222,7 @@ class AuthTokenRepositoryTest extends DatabaseTestCase
$itemSearchData = new ItemSearchData();
$itemSearchData->setSeachString('admin');
- $result = self::$authTokenRepository->search($itemSearchData);
+ $result = self::$repository->search($itemSearchData);
$data = $result->getDataAsArray();
$this->assertEquals(2, $result->getNumRows());
@@ -229,7 +239,7 @@ class AuthTokenRepositoryTest extends DatabaseTestCase
$itemSearchData = new ItemSearchData();
$itemSearchData->setSeachString('test');
- $result = self::$authTokenRepository->search($itemSearchData);
+ $result = self::$repository->search($itemSearchData);
$this->assertEquals(0, $result->getNumRows());
$this->assertCount(0, $result->getDataAsArray());
@@ -243,10 +253,10 @@ class AuthTokenRepositoryTest extends DatabaseTestCase
{
$this->assertEquals(2, $this->conn->getRowCount('AuthToken'));
- $this->assertEquals(2, self::$authTokenRepository->deleteByIdBatch([1, 2, 3]));
+ $this->assertEquals(2, self::$repository->deleteByIdBatch([1, 2, 3]));
$this->assertEquals(0, $this->conn->getRowCount('AuthToken'));
- $this->assertEquals(0, self::$authTokenRepository->deleteByIdBatch([]));
+ $this->assertEquals(0, self::$repository->deleteByIdBatch([]));
}
/**
@@ -255,9 +265,9 @@ class AuthTokenRepositoryTest extends DatabaseTestCase
*/
public function testGetUserIdForToken()
{
- $this->assertEquals(1, self::$authTokenRepository->getUserIdForToken(self::AUTH_TOKEN));
+ $this->assertEquals(1, self::$repository->getUserIdForToken(self::AUTH_TOKEN));
- $this->assertFalse(self::$authTokenRepository->getUserIdForToken('no_token'));
+ $this->assertFalse(self::$repository->getUserIdForToken('no_token'));
}
/**
@@ -266,9 +276,9 @@ class AuthTokenRepositoryTest extends DatabaseTestCase
*/
public function testDelete()
{
- $this->assertEquals(1, self::$authTokenRepository->delete(1));
+ $this->assertEquals(1, self::$repository->delete(1));
- $this->assertEquals(0, self::$authTokenRepository->delete(10));
+ $this->assertEquals(0, self::$repository->delete(10));
}
/**
@@ -294,10 +304,10 @@ class AuthTokenRepositoryTest extends DatabaseTestCase
$authTokenData->setVault($vault);
$authTokenData->setUserId(2);
- $this->assertEquals(3, self::$authTokenRepository->create($authTokenData));
+ $this->assertEquals(3, self::$repository->create($authTokenData));
$this->assertEquals(3, $this->conn->getRowCount('AuthToken'));
- $result = self::$authTokenRepository->getTokenByToken(ActionsInterface::ACCOUNT_CREATE, $token);
+ $result = self::$repository->getTokenByToken(ActionsInterface::ACCOUNT_CREATE, $token);
$this->assertInstanceOf(AuthTokenData::class, $result);
$this->assertEquals(ActionsInterface::ACCOUNT_CREATE, $result->getActionId());
@@ -310,6 +320,6 @@ class AuthTokenRepositoryTest extends DatabaseTestCase
$authTokenData->setUserId(1);
- self::$authTokenRepository->create($authTokenData);
+ self::$repository->create($authTokenData);
}
}
diff --git a/tests/Repositories/CategoryRepositoryTest.php b/tests/Repositories/CategoryRepositoryTest.php
index ad269ca7..947413bd 100644
--- a/tests/Repositories/CategoryRepositoryTest.php
+++ b/tests/Repositories/CategoryRepositoryTest.php
@@ -46,7 +46,7 @@ class CategoryRepositoryTest extends DatabaseTestCase
/**
* @var CategoryRepository
*/
- private static $categoryRepository;
+ private static $repository;
/**
* @throws \DI\NotFoundException
@@ -61,30 +61,33 @@ class CategoryRepositoryTest extends DatabaseTestCase
self::$databaseConnectionData = $dic->get(DatabaseConnectionData::class);
// Inicializar el repositorio
- self::$categoryRepository = $dic->get(CategoryRepository::class);
+ self::$repository = $dic->get(CategoryRepository::class);
}
/**
* Comprobar los resultados de obtener las categorías por nombre
+ *
+ * @throws ConstraintException
+ * @throws QueryException
*/
public function testGetByName()
{
- $category = self::$categoryRepository->getByName('Prueba');
+ $category = self::$repository->getByName('Prueba');
$this->assertCount(0, $category);
- $category = self::$categoryRepository->getByName('Web');
+ $category = self::$repository->getByName('Web');
$this->assertEquals(1, $category->getId());
$this->assertEquals('Web sites', $category->getDescription());
- $category = self::$categoryRepository->getByName('Linux');
+ $category = self::$repository->getByName('Linux');
$this->assertEquals(2, $category->getId());
$this->assertEquals('Linux server', $category->getDescription());
// Se comprueba que el hash generado es el mismo en para el nombre 'Web'
- $category = self::$categoryRepository->getByName(' web. ');
+ $category = self::$repository->getByName(' web. ');
$this->assertEquals(1, $category->getId());
$this->assertEquals('Web sites', $category->getDescription());
@@ -102,7 +105,7 @@ class CategoryRepositoryTest extends DatabaseTestCase
$itemSearchData->setLimitCount(10);
$itemSearchData->setSeachString('linux');
- $result = self::$categoryRepository->search($itemSearchData);
+ $result = self::$repository->search($itemSearchData);
$data = $result->getDataAsArray();
$this->assertEquals(1, $result->getNumRows());
@@ -115,7 +118,7 @@ class CategoryRepositoryTest extends DatabaseTestCase
$itemSearchData->setLimitCount(10);
$itemSearchData->setSeachString('prueba');
- $result = self::$categoryRepository->search($itemSearchData);
+ $result = self::$repository->search($itemSearchData);
$data = $result->getDataAsArray();
$this->assertEquals(0, $result->getNumRows());
@@ -124,19 +127,22 @@ class CategoryRepositoryTest extends DatabaseTestCase
/**
* Comprobar los resultados de obtener las categorías por Id
+ *
+ * @throws ConstraintException
+ * @throws QueryException
*/
public function testGetById()
{
- $category = self::$categoryRepository->getById(10);
+ $category = self::$repository->getById(10);
$this->assertCount(0, $category);
- $category = self::$categoryRepository->getById(1);
+ $category = self::$repository->getById(1);
$this->assertEquals('Web', $category->getName());
$this->assertEquals('Web sites', $category->getDescription());
- $category = self::$categoryRepository->getById(2);
+ $category = self::$repository->getById(2);
$this->assertEquals('Linux', $category->getName());
$this->assertEquals('Linux server', $category->getDescription());
@@ -144,12 +150,15 @@ class CategoryRepositoryTest extends DatabaseTestCase
/**
* Comprobar la obtención de todas las categorías
+ *
+ * @throws ConstraintException
+ * @throws QueryException
*/
public function testGetAll()
{
$count = $this->conn->getRowCount('Category');
- $results = self::$categoryRepository->getAll();
+ $results = self::$repository->getAll();
$this->assertCount($count, $results);
@@ -166,7 +175,8 @@ class CategoryRepositoryTest extends DatabaseTestCase
/**
* Comprobar la actualización de categorías
*
- * @covers \SP\Repositories\Category\CategoryRepository::checkDuplicatedOnUpdate()
+ * @depends testGetById
+ * @covers \SP\Repositories\Category\CategoryRepository::checkDuplicatedOnUpdate()
* @throws \SP\Core\Exceptions\ConstraintException
* @throws \SP\Core\Exceptions\QueryException
* @throws \SP\Core\Exceptions\SPException
@@ -179,9 +189,9 @@ class CategoryRepositoryTest extends DatabaseTestCase
$categoryData->name = 'Web prueba';
$categoryData->description = 'Descripción web prueba';
- self::$categoryRepository->update($categoryData);
+ self::$repository->update($categoryData);
- $category = self::$categoryRepository->getById(1);
+ $category = self::$repository->getById(1);
$this->assertEquals($category->getName(), $categoryData->name);
$this->assertEquals($category->getDescription(), $categoryData->description);
@@ -193,7 +203,7 @@ class CategoryRepositoryTest extends DatabaseTestCase
$this->expectException(DuplicatedItemException::class);
- self::$categoryRepository->update($categoryData);
+ self::$repository->update($categoryData);
}
/**
@@ -206,7 +216,7 @@ class CategoryRepositoryTest extends DatabaseTestCase
{
$countBefore = $this->conn->getRowCount('Category');
- $this->assertEquals(1, self::$categoryRepository->deleteByIdBatch([3]));
+ $this->assertEquals(1, self::$repository->deleteByIdBatch([3]));
$countAfter = $this->conn->getRowCount('Category');
@@ -215,13 +225,14 @@ class CategoryRepositoryTest extends DatabaseTestCase
// Comprobar que se produce una excepción al tratar de eliminar categorías usadas
$this->expectException(ConstraintException::class);
- $this->assertEquals(1, self::$categoryRepository->deleteByIdBatch([1, 2, 3]));
+ $this->assertEquals(1, self::$repository->deleteByIdBatch([1, 2, 3]));
}
/**
* Comprobar la creación de categorías
*
- * @covers \SP\Repositories\Category\CategoryRepository::checkDuplicatedOnAdd()
+ * @depends testGetById
+ * @covers \SP\Repositories\Category\CategoryRepository::checkDuplicatedOnAdd()
* @throws DuplicatedItemException
* @throws \SP\Core\Exceptions\SPException
*/
@@ -233,10 +244,10 @@ class CategoryRepositoryTest extends DatabaseTestCase
$categoryData->name = 'Categoría prueba';
$categoryData->description = 'Descripción prueba';
- $id = self::$categoryRepository->create($categoryData);
+ $id = self::$repository->create($categoryData);
// Comprobar que el Id devuelto corresponde con la categoría creada
- $category = self::$categoryRepository->getById($id);
+ $category = self::$repository->getById($id);
$this->assertEquals($categoryData->name, $category->getName());
@@ -255,7 +266,7 @@ class CategoryRepositoryTest extends DatabaseTestCase
{
$countBefore = $this->conn->getRowCount('Category');
- $this->assertEquals(1, self::$categoryRepository->delete(3));
+ $this->assertEquals(1, self::$repository->delete(3));
$countAfter = $this->conn->getRowCount('Category');
@@ -264,7 +275,7 @@ class CategoryRepositoryTest extends DatabaseTestCase
// Comprobar que se produce una excepción al tratar de eliminar categorías usadas
$this->expectException(ConstraintException::class);
- $this->assertEquals(1, self::$categoryRepository->delete(2));
+ $this->assertEquals(1, self::$repository->delete(2));
}
/**
@@ -275,8 +286,8 @@ class CategoryRepositoryTest extends DatabaseTestCase
*/
public function testGetByIdBatch()
{
- $this->assertCount(3, self::$categoryRepository->getByIdBatch([1, 2, 3]));
- $this->assertCount(3, self::$categoryRepository->getByIdBatch([1, 2, 3, 4, 5]));
- $this->assertCount(0, self::$categoryRepository->getByIdBatch([]));
+ $this->assertCount(3, self::$repository->getByIdBatch([1, 2, 3]));
+ $this->assertCount(3, self::$repository->getByIdBatch([1, 2, 3, 4, 5]));
+ $this->assertCount(0, self::$repository->getByIdBatch([]));
}
}
diff --git a/tests/Repositories/ClientRepositoryTest.php b/tests/Repositories/ClientRepositoryTest.php
index 989edf02..162b9dfd 100644
--- a/tests/Repositories/ClientRepositoryTest.php
+++ b/tests/Repositories/ClientRepositoryTest.php
@@ -47,7 +47,7 @@ class ClientRepositoryTest extends DatabaseTestCase
/**
* @var ClientRepository
*/
- private static $clientRepository;
+ private static $repository;
/**
* @throws \DI\NotFoundException
@@ -62,30 +62,33 @@ class ClientRepositoryTest extends DatabaseTestCase
self::$databaseConnectionData = $dic->get(DatabaseConnectionData::class);
// Inicializar el repositorio
- self::$clientRepository = $dic->get(ClientRepository::class);
+ self::$repository = $dic->get(ClientRepository::class);
}
/**
* Comprobar los resultados de obtener los cliente por nombre
+ *
+ * @throws ConstraintException
+ * @throws QueryException
*/
public function testGetByName()
{
- $client = self::$clientRepository->getByName('Amazon');
+ $client = self::$repository->getByName('Amazon');
$this->assertCount(0, $client);
- $client = self::$clientRepository->getByName('Google');
+ $client = self::$repository->getByName('Google');
$this->assertEquals(1, $client->getId());
$this->assertEquals('Google Inc.', $client->getDescription());
- $client = self::$clientRepository->getByName('Apple');
+ $client = self::$repository->getByName('Apple');
$this->assertEquals(2, $client->getId());
$this->assertEquals('Apple Inc.', $client->getDescription());
// Se comprueba que el hash generado es el mismo en para el nombre 'Web'
- $client = self::$clientRepository->getByName(' google. ');
+ $client = self::$repository->getByName(' google. ');
$this->assertEquals(1, $client->getId());
$this->assertEquals('Google Inc.', $client->getDescription());
@@ -103,7 +106,7 @@ class ClientRepositoryTest extends DatabaseTestCase
$itemSearchData->setLimitCount(10);
$itemSearchData->setSeachString('google');
- $result = self::$clientRepository->search($itemSearchData);
+ $result = self::$repository->search($itemSearchData);
$data = $result->getDataAsArray();
$this->assertEquals(1, $result->getNumRows());
@@ -116,7 +119,7 @@ class ClientRepositoryTest extends DatabaseTestCase
$itemSearchData->setLimitCount(10);
$itemSearchData->setSeachString('prueba');
- $result = self::$clientRepository->search($itemSearchData);
+ $result = self::$repository->search($itemSearchData);
$this->assertEquals(0, $result->getNumRows());
$this->assertCount(0, $result->getDataAsArray());
@@ -124,19 +127,22 @@ class ClientRepositoryTest extends DatabaseTestCase
/**
* Comprobar los resultados de obtener los clientes por Id
+ *
+ * @throws ConstraintException
+ * @throws QueryException
*/
public function testGetById()
{
- $client = self::$clientRepository->getById(10);
+ $client = self::$repository->getById(10);
$this->assertCount(0, $client);
- $client = self::$clientRepository->getById(1);
+ $client = self::$repository->getById(1);
$this->assertEquals('Google', $client->getName());
$this->assertEquals('Google Inc.', $client->getDescription());
- $client = self::$clientRepository->getById(2);
+ $client = self::$repository->getById(2);
$this->assertEquals('Apple', $client->getName());
$this->assertEquals('Apple Inc.', $client->getDescription());
@@ -144,12 +150,15 @@ class ClientRepositoryTest extends DatabaseTestCase
/**
* Comprobar la obtención de todas las client
+ *
+ * @throws ConstraintException
+ * @throws QueryException
*/
public function testGetAll()
{
$count = $this->conn->getRowCount('Client');
- $results = self::$clientRepository->getAll();
+ $results = self::$repository->getAll();
$this->assertCount($count, $results);
@@ -166,7 +175,8 @@ class ClientRepositoryTest extends DatabaseTestCase
/**
* Comprobar la actualización de clientes
*
- * @covers \SP\Repositories\Client\ClientRepository::checkDuplicatedOnUpdate()
+ * @depends testGetById
+ * @covers \SP\Repositories\Client\ClientRepository::checkDuplicatedOnUpdate()
* @throws \SP\Core\Exceptions\ConstraintException
* @throws \SP\Core\Exceptions\QueryException
* @throws \SP\Core\Exceptions\SPException
@@ -179,9 +189,9 @@ class ClientRepositoryTest extends DatabaseTestCase
$clientData->name = 'Cliente prueba';
$clientData->description = 'Descripción cliente prueba';
- self::$clientRepository->update($clientData);
+ self::$repository->update($clientData);
- $category = self::$clientRepository->getById(1);
+ $category = self::$repository->getById(1);
$this->assertEquals($category->getName(), $clientData->name);
$this->assertEquals($category->getDescription(), $clientData->description);
@@ -193,7 +203,7 @@ class ClientRepositoryTest extends DatabaseTestCase
$this->expectException(DuplicatedItemException::class);
- self::$clientRepository->update($clientData);
+ self::$repository->update($clientData);
}
/**
@@ -206,7 +216,7 @@ class ClientRepositoryTest extends DatabaseTestCase
{
$countBefore = $this->conn->getRowCount('Client');
- $this->assertEquals(1, self::$clientRepository->deleteByIdBatch([3]));
+ $this->assertEquals(1, self::$repository->deleteByIdBatch([3]));
$countAfter = $this->conn->getRowCount('Client');
@@ -215,13 +225,14 @@ class ClientRepositoryTest extends DatabaseTestCase
// Comprobar que se produce una excepción al tratar de eliminar clientes usados
$this->expectException(ConstraintException::class);
- $this->assertEquals(1, self::$clientRepository->deleteByIdBatch([1, 2, 3]));
+ $this->assertEquals(1, self::$repository->deleteByIdBatch([1, 2, 3]));
}
/**
* Comprobar la creación de clientes
*
- * @covers \SP\Repositories\Client\ClientRepository::checkDuplicatedOnAdd()
+ * @depends testGetById
+ * @covers \SP\Repositories\Client\ClientRepository::checkDuplicatedOnAdd()
* @throws DuplicatedItemException
* @throws \SP\Core\Exceptions\SPException
*/
@@ -234,10 +245,10 @@ class ClientRepositoryTest extends DatabaseTestCase
$clientData->description = 'Descripción prueba';
$clientData->isGlobal = 1;
- $id = self::$clientRepository->create($clientData);
+ $id = self::$repository->create($clientData);
// Comprobar que el Id devuelto corresponde con el cliente creado
- $client = self::$clientRepository->getById($id);
+ $client = self::$repository->getById($id);
$this->assertEquals($clientData->name, $client->getName());
$this->assertEquals($clientData->isGlobal, $client->getIsGlobal());
@@ -257,7 +268,7 @@ class ClientRepositoryTest extends DatabaseTestCase
{
$countBefore = $this->conn->getRowCount('Client');
- $this->assertEquals(1, self::$clientRepository->delete(3));
+ $this->assertEquals(1, self::$repository->delete(3));
$countAfter = $this->conn->getRowCount('Client');
@@ -266,7 +277,7 @@ class ClientRepositoryTest extends DatabaseTestCase
// Comprobar que se produce una excepción al tratar de eliminar clientes usados
$this->expectException(ConstraintException::class);
- $this->assertEquals(1, self::$clientRepository->delete(2));
+ $this->assertEquals(1, self::$repository->delete(2));
}
/**
@@ -277,9 +288,9 @@ class ClientRepositoryTest extends DatabaseTestCase
*/
public function testGetByIdBatch()
{
- $this->assertCount(3, self::$clientRepository->getByIdBatch([1, 2, 3]));
- $this->assertCount(3, self::$clientRepository->getByIdBatch([1, 2, 3, 4, 5]));
- $this->assertCount(0, self::$clientRepository->getByIdBatch([]));
+ $this->assertCount(3, self::$repository->getByIdBatch([1, 2, 3]));
+ $this->assertCount(3, self::$repository->getByIdBatch([1, 2, 3, 4, 5]));
+ $this->assertCount(0, self::$repository->getByIdBatch([]));
}
/**
@@ -291,6 +302,6 @@ class ClientRepositoryTest extends DatabaseTestCase
$filter = new QueryCondition();
$filter->addFilter('Account.isPrivate = 0');
- $this->assertCount(3, self::$clientRepository->getAllForFilter($filter));
+ $this->assertCount(3, self::$repository->getAllForFilter($filter));
}
}
diff --git a/tests/Repositories/CustomFieldDefRepositoryTest.php b/tests/Repositories/CustomFieldDefRepositoryTest.php
index 035295f8..ca3bd28d 100644
--- a/tests/Repositories/CustomFieldDefRepositoryTest.php
+++ b/tests/Repositories/CustomFieldDefRepositoryTest.php
@@ -44,7 +44,7 @@ class CustomFieldDefRepositoryTest extends DatabaseTestCase
/**
* @var CustomFieldDefRepository
*/
- private static $customFieldDefRepository;
+ private static $repository;
/**
* @throws \DI\NotFoundException
@@ -59,10 +59,35 @@ class CustomFieldDefRepositoryTest extends DatabaseTestCase
self::$databaseConnectionData = $dic->get(DatabaseConnectionData::class);
// Inicializar el repositorio
- self::$customFieldDefRepository = $dic->get(CustomFieldDefRepository::class);
+ self::$repository = $dic->get(CustomFieldDefRepository::class);
}
/**
+ * @throws ConstraintException
+ * @throws NoSuchItemException
+ * @throws \SP\Core\Exceptions\QueryException
+ */
+ public function testGetById()
+ {
+ $expected = new CustomFieldDefinitionData();
+ $expected->setId(1);
+ $expected->setName('Prueba');
+ $expected->setIsEncrypted(1);
+ $expected->setHelp('Ayuda');
+ $expected->setModuleId(ActionsInterface::ACCOUNT);
+ $expected->setRequired(true);
+ $expected->setTypeId(1);
+ $expected->setShowInList(0);
+
+ $this->assertEquals($expected, self::$repository->getById(1));
+
+ $this->expectException(NoSuchItemException::class);
+
+ $this->assertEquals($expected, self::$repository->getById(10));
+ }
+
+ /**
+ * @depends testGetById
* @throws \SP\Core\Exceptions\ConstraintException
* @throws \SP\Core\Exceptions\QueryException
* @throws NoSuchItemException
@@ -79,9 +104,9 @@ class CustomFieldDefRepositoryTest extends DatabaseTestCase
$data->setTypeId(2);
$data->setShowInList(1);
- $this->assertEquals(1, self::$customFieldDefRepository->update($data));
+ $this->assertEquals(1, self::$repository->update($data));
- $dataUpdated = self::$customFieldDefRepository->getById(1);
+ $dataUpdated = self::$repository->getById(1);
$this->assertEquals($data, $dataUpdated);
@@ -89,7 +114,7 @@ class CustomFieldDefRepositoryTest extends DatabaseTestCase
$this->expectException(ConstraintException::class);
- $this->assertEquals(1, self::$customFieldDefRepository->update($data));
+ $this->assertEquals(1, self::$repository->update($data));
}
/**
@@ -99,13 +124,13 @@ class CustomFieldDefRepositoryTest extends DatabaseTestCase
*/
public function testDeleteByIdBatch()
{
- $this->assertEquals(1, self::$customFieldDefRepository->deleteByIdBatch([3, 4]));
+ $this->assertEquals(1, self::$repository->deleteByIdBatch([3, 4]));
$this->assertEquals(2, $this->conn->getRowCount('CustomFieldDefinition'));
- $this->assertEquals(0, self::$customFieldDefRepository->deleteByIdBatch([]));
+ $this->assertEquals(0, self::$repository->deleteByIdBatch([]));
$this->expectException(ConstraintException::class);
- self::$customFieldDefRepository->deleteByIdBatch([1, 2]);
+ self::$repository->deleteByIdBatch([1, 2]);
}
/**
@@ -114,7 +139,7 @@ class CustomFieldDefRepositoryTest extends DatabaseTestCase
*/
public function testGetByIdBatch()
{
- $data = self::$customFieldDefRepository->getByIdBatch([1, 2]);
+ $data = self::$repository->getByIdBatch([1, 2]);
$this->assertCount(2, $data);
$this->assertInstanceOf(CustomFieldDefinitionData::class, $data[0]);
@@ -143,33 +168,9 @@ class CustomFieldDefRepositoryTest extends DatabaseTestCase
$this->assertEquals($expected, $data[1]);
- $this->assertCount(0, self::$customFieldDefRepository->getByIdBatch([10]));
+ $this->assertCount(0, self::$repository->getByIdBatch([10]));
- $this->assertCount(0, self::$customFieldDefRepository->getByIdBatch([]));
- }
-
- /**
- * @throws ConstraintException
- * @throws NoSuchItemException
- * @throws \SP\Core\Exceptions\QueryException
- */
- public function testGetById()
- {
- $expected = new CustomFieldDefinitionData();
- $expected->setId(1);
- $expected->setName('Prueba');
- $expected->setIsEncrypted(1);
- $expected->setHelp('Ayuda');
- $expected->setModuleId(ActionsInterface::ACCOUNT);
- $expected->setRequired(true);
- $expected->setTypeId(1);
- $expected->setShowInList(0);
-
- $this->assertEquals($expected, self::$customFieldDefRepository->getById(1));
-
- $this->expectException(NoSuchItemException::class);
-
- $this->assertEquals($expected, self::$customFieldDefRepository->getById(10));
+ $this->assertCount(0, self::$repository->getByIdBatch([]));
}
/**
@@ -189,9 +190,9 @@ class CustomFieldDefRepositoryTest extends DatabaseTestCase
$data->setTypeId(6);
$data->setShowInList(0);
- $this->assertEquals(4, self::$customFieldDefRepository->create($data));
+ $this->assertEquals(4, self::$repository->create($data));
- $this->assertEquals($data, self::$customFieldDefRepository->getById(4));
+ $this->assertEquals($data, self::$repository->getById(4));
}
/**
@@ -200,9 +201,9 @@ class CustomFieldDefRepositoryTest extends DatabaseTestCase
*/
public function testGetAll()
{
- self::$customFieldDefRepository->resetCollection();
+ self::$repository->resetCollection();
- $data = self::$customFieldDefRepository->getAll();
+ $data = self::$repository->getAll();
$this->assertCount(3, $data);
@@ -240,7 +241,7 @@ class CustomFieldDefRepositoryTest extends DatabaseTestCase
$itemSearchData->setSeachString('RSA');
$itemSearchData->setLimitCount(10);
- $result = self::$customFieldDefRepository->search($itemSearchData);
+ $result = self::$repository->search($itemSearchData);
$data = $result->getDataAsArray();
$this->assertEquals(2, $result->getNumRows());
@@ -254,7 +255,7 @@ class CustomFieldDefRepositoryTest extends DatabaseTestCase
$itemSearchData->setSeachString('test');
$itemSearchData->setLimitCount(10);
- $this->assertEquals(0, self::$customFieldDefRepository->search($itemSearchData)->getNumRows());
+ $this->assertEquals(0, self::$repository->search($itemSearchData)->getNumRows());
}
/**
@@ -264,13 +265,13 @@ class CustomFieldDefRepositoryTest extends DatabaseTestCase
*/
public function testDelete()
{
- $this->assertEquals(1, self::$customFieldDefRepository->delete(3));
- $this->assertEquals(0, self::$customFieldDefRepository->delete(10));
+ $this->assertEquals(1, self::$repository->delete(3));
+ $this->assertEquals(0, self::$repository->delete(10));
$this->assertEquals(2, $this->conn->getRowCount('CustomFieldDefinition'));
$this->expectException(ConstraintException::class);
- self::$customFieldDefRepository->delete(1);
+ self::$repository->delete(1);
}
/**
@@ -280,6 +281,6 @@ class CustomFieldDefRepositoryTest extends DatabaseTestCase
{
parent::setUp();
- self::$customFieldDefRepository->resetCollection();
+ self::$repository->resetCollection();
}
}
diff --git a/tests/Repositories/CustomFieldRepositoryTest.php b/tests/Repositories/CustomFieldRepositoryTest.php
index 0c8af9f4..e4d6ca72 100644
--- a/tests/Repositories/CustomFieldRepositoryTest.php
+++ b/tests/Repositories/CustomFieldRepositoryTest.php
@@ -42,7 +42,7 @@ class CustomFieldRepositoryTest extends DatabaseTestCase
/**
* @var CustomFieldRepository
*/
- private static $customFieldRepository;
+ private static $repository;
/**
* @throws \DI\NotFoundException
@@ -57,7 +57,7 @@ class CustomFieldRepositoryTest extends DatabaseTestCase
self::$databaseConnectionData = $dic->get(DatabaseConnectionData::class);
// Inicializar el repositorio
- self::$customFieldRepository = $dic->get(CustomFieldRepository::class);
+ self::$repository = $dic->get(CustomFieldRepository::class);
}
/**
@@ -66,15 +66,15 @@ class CustomFieldRepositoryTest extends DatabaseTestCase
*/
public function testDeleteCustomFieldDataBatch()
{
- $this->assertEquals(1, self::$customFieldRepository->deleteCustomFieldDataBatch([1, 2, 3], ActionsInterface::ACCOUNT));
+ $this->assertEquals(1, self::$repository->deleteCustomFieldDataBatch([1, 2, 3], ActionsInterface::ACCOUNT));
- $this->assertEquals(1, self::$customFieldRepository->deleteCustomFieldDataBatch([1, 2, 3], ActionsInterface::CATEGORY));
+ $this->assertEquals(1, self::$repository->deleteCustomFieldDataBatch([1, 2, 3], ActionsInterface::CATEGORY));
$this->assertEquals(0, $this->conn->getRowCount('CustomFieldData'));
- $this->assertEquals(0, self::$customFieldRepository->deleteCustomFieldDataBatch([], ActionsInterface::CATEGORY));
+ $this->assertEquals(0, self::$repository->deleteCustomFieldDataBatch([], ActionsInterface::CATEGORY));
- $this->assertEquals(0, self::$customFieldRepository->deleteCustomFieldDataBatch([], ActionsInterface::USER));
+ $this->assertEquals(0, self::$repository->deleteCustomFieldDataBatch([], ActionsInterface::USER));
}
@@ -84,16 +84,16 @@ class CustomFieldRepositoryTest extends DatabaseTestCase
*/
public function testDeleteCustomFieldDataForDefinition()
{
- $this->assertEquals(1, self::$customFieldRepository->deleteCustomFieldDataForDefinition(1, ActionsInterface::ACCOUNT, 1));
- $this->assertEquals(0, self::$customFieldRepository->deleteCustomFieldDataForDefinition(1, ActionsInterface::ACCOUNT, 2));
- $this->assertEquals(0, self::$customFieldRepository->deleteCustomFieldDataForDefinition(10, ActionsInterface::ACCOUNT, 3));
+ $this->assertEquals(1, self::$repository->deleteCustomFieldDataForDefinition(1, ActionsInterface::ACCOUNT, 1));
+ $this->assertEquals(0, self::$repository->deleteCustomFieldDataForDefinition(1, ActionsInterface::ACCOUNT, 2));
+ $this->assertEquals(0, self::$repository->deleteCustomFieldDataForDefinition(10, ActionsInterface::ACCOUNT, 3));
- $this->assertEquals(1, self::$customFieldRepository->deleteCustomFieldDataForDefinition(1, ActionsInterface::CATEGORY, 2));
- $this->assertEquals(0, self::$customFieldRepository->deleteCustomFieldDataForDefinition(1, ActionsInterface::CATEGORY, 1));
- $this->assertEquals(0, self::$customFieldRepository->deleteCustomFieldDataForDefinition(10, ActionsInterface::CATEGORY, 3));
+ $this->assertEquals(1, self::$repository->deleteCustomFieldDataForDefinition(1, ActionsInterface::CATEGORY, 2));
+ $this->assertEquals(0, self::$repository->deleteCustomFieldDataForDefinition(1, ActionsInterface::CATEGORY, 1));
+ $this->assertEquals(0, self::$repository->deleteCustomFieldDataForDefinition(10, ActionsInterface::CATEGORY, 3));
- $this->assertEquals(0, self::$customFieldRepository->deleteCustomFieldDataForDefinition(1, ActionsInterface::USER, 1));
- $this->assertEquals(0, self::$customFieldRepository->deleteCustomFieldDataForDefinition(1, ActionsInterface::USER, 2));
+ $this->assertEquals(0, self::$repository->deleteCustomFieldDataForDefinition(1, ActionsInterface::USER, 1));
+ $this->assertEquals(0, self::$repository->deleteCustomFieldDataForDefinition(1, ActionsInterface::USER, 2));
}
/**
@@ -107,19 +107,19 @@ class CustomFieldRepositoryTest extends DatabaseTestCase
$data->setDefinitionId(1);
$data->setId(1);
- $this->assertTrue(self::$customFieldRepository->checkExists($data));
+ $this->assertTrue(self::$repository->checkExists($data));
$data->setModuleId(ActionsInterface::CATEGORY);
$data->setDefinitionId(1);
$data->setId(1);
- $this->assertFalse(self::$customFieldRepository->checkExists($data));
+ $this->assertFalse(self::$repository->checkExists($data));
$data->setModuleId(ActionsInterface::USER);
$data->setDefinitionId(1);
$data->setId(1);
- $this->assertFalse(self::$customFieldRepository->checkExists($data));
+ $this->assertFalse(self::$repository->checkExists($data));
}
/**
@@ -128,7 +128,7 @@ class CustomFieldRepositoryTest extends DatabaseTestCase
*/
public function testGetAllEncrypted()
{
- $result = self::$customFieldRepository->getAllEncrypted();
+ $result = self::$repository->getAllEncrypted();
$this->assertCount(1, $result);
$this->assertInstanceOf(CustomFieldData::class, $result[0]);
@@ -143,11 +143,11 @@ class CustomFieldRepositoryTest extends DatabaseTestCase
*/
public function testDeleteCustomFieldDefinitionDataBatch()
{
- $this->assertEquals(2, self::$customFieldRepository->deleteCustomFieldDefinitionDataBatch([1, 2, 3]));
+ $this->assertEquals(2, self::$repository->deleteCustomFieldDefinitionDataBatch([1, 2, 3]));
$this->assertEquals(0, $this->conn->getRowCount('CustomFieldData'));
- $this->assertEquals(0, self::$customFieldRepository->deleteCustomFieldDefinitionDataBatch([]));
+ $this->assertEquals(0, self::$repository->deleteCustomFieldDefinitionDataBatch([]));
}
/**
@@ -156,7 +156,7 @@ class CustomFieldRepositoryTest extends DatabaseTestCase
*/
public function testGetAll()
{
- $result = self::$customFieldRepository->getAll();
+ $result = self::$repository->getAll();
$this->assertCount(2, $result);
$this->assertInstanceOf(CustomFieldData::class, $result[0]);
@@ -169,16 +169,16 @@ class CustomFieldRepositoryTest extends DatabaseTestCase
*/
public function testDeleteCustomFieldData()
{
- $this->assertEquals(1, self::$customFieldRepository->deleteCustomFieldData(1, ActionsInterface::ACCOUNT));
- $this->assertEquals(1, self::$customFieldRepository->deleteCustomFieldData(1, ActionsInterface::CATEGORY));
+ $this->assertEquals(1, self::$repository->deleteCustomFieldData(1, ActionsInterface::ACCOUNT));
+ $this->assertEquals(1, self::$repository->deleteCustomFieldData(1, ActionsInterface::CATEGORY));
$this->assertEquals(0, $this->conn->getRowCount('CustomFieldData'));
- $this->assertEquals(0, self::$customFieldRepository->deleteCustomFieldData(2, ActionsInterface::ACCOUNT));
+ $this->assertEquals(0, self::$repository->deleteCustomFieldData(2, ActionsInterface::ACCOUNT));
- $this->assertEquals(0, self::$customFieldRepository->deleteCustomFieldData(2, ActionsInterface::CATEGORY));
+ $this->assertEquals(0, self::$repository->deleteCustomFieldData(2, ActionsInterface::CATEGORY));
- $this->assertEquals(0, self::$customFieldRepository->deleteCustomFieldData(2, ActionsInterface::USER));
+ $this->assertEquals(0, self::$repository->deleteCustomFieldData(2, ActionsInterface::USER));
}
/**
@@ -187,7 +187,7 @@ class CustomFieldRepositoryTest extends DatabaseTestCase
*/
public function testGetForModuleById()
{
- $result = self::$customFieldRepository->getForModuleById(ActionsInterface::ACCOUNT, 1);
+ $result = self::$repository->getForModuleById(ActionsInterface::ACCOUNT, 1);
$this->assertCount(1, $result);
$this->assertEquals('Prueba', $result[0]->definitionName);
@@ -203,7 +203,7 @@ class CustomFieldRepositoryTest extends DatabaseTestCase
$this->assertNotEmpty($result[0]->data);
$this->assertNotEmpty($result[0]->key);
- $result = self::$customFieldRepository->getForModuleById(ActionsInterface::ACCOUNT, 2);
+ $result = self::$repository->getForModuleById(ActionsInterface::ACCOUNT, 2);
$this->assertCount(1, $result);
$this->assertEquals('Prueba', $result[0]->definitionName);
@@ -219,11 +219,11 @@ class CustomFieldRepositoryTest extends DatabaseTestCase
$this->assertEmpty($result[0]->data);
$this->assertEmpty($result[0]->key);
- $result = self::$customFieldRepository->getForModuleById(ActionsInterface::ACCOUNT, 3);
+ $result = self::$repository->getForModuleById(ActionsInterface::ACCOUNT, 3);
$this->assertCount(1, $result);
- $result = self::$customFieldRepository->getForModuleById(ActionsInterface::CATEGORY, 1);
+ $result = self::$repository->getForModuleById(ActionsInterface::CATEGORY, 1);
$this->assertCount(2, $result);
$this->assertEquals('RSA', $result[0]->definitionName);
@@ -239,7 +239,7 @@ class CustomFieldRepositoryTest extends DatabaseTestCase
$this->assertNotEmpty($result[0]->data);
$this->assertNull($result[0]->key);
- $result = self::$customFieldRepository->getForModuleById(ActionsInterface::CATEGORY, 2);
+ $result = self::$repository->getForModuleById(ActionsInterface::CATEGORY, 2);
$this->assertCount(2, $result);
$this->assertEquals('RSA', $result[0]->definitionName);
@@ -255,11 +255,11 @@ class CustomFieldRepositoryTest extends DatabaseTestCase
$this->assertNull($result[0]->data);
$this->assertNull($result[0]->key);
- $result = self::$customFieldRepository->getForModuleById(ActionsInterface::CATEGORY, 3);
+ $result = self::$repository->getForModuleById(ActionsInterface::CATEGORY, 3);
$this->assertCount(2, $result);
- $result = self::$customFieldRepository->getForModuleById(ActionsInterface::USER, 1);
+ $result = self::$repository->getForModuleById(ActionsInterface::USER, 1);
$this->assertCount(0, $result);
}
@@ -277,7 +277,7 @@ class CustomFieldRepositoryTest extends DatabaseTestCase
$data->setData('cuenta');
$data->setKey('nan');
- $this->assertEquals(3, self::$customFieldRepository->create($data));
+ $this->assertEquals(3, self::$repository->create($data));
$data = new CustomFieldData();
$data->setId(2);
@@ -286,7 +286,7 @@ class CustomFieldRepositoryTest extends DatabaseTestCase
$data->setData('categoria');
$data->setKey('nan');
- $this->assertEquals(4, self::$customFieldRepository->create($data));
+ $this->assertEquals(4, self::$repository->create($data));
$this->expectException(ConstraintException::class);
@@ -297,11 +297,11 @@ class CustomFieldRepositoryTest extends DatabaseTestCase
$data->setData('cuenta');
$data->setKey('nan');
- self::$customFieldRepository->create($data);
+ self::$repository->create($data);
$data->setDefinitionId(3);
- self::$customFieldRepository->create($data);
+ self::$repository->create($data);
$data = new CustomFieldData();
$data->setId(2);
@@ -310,11 +310,11 @@ class CustomFieldRepositoryTest extends DatabaseTestCase
$data->setData('categoria');
$data->setKey('nan');
- self::$customFieldRepository->create($data);
+ self::$repository->create($data);
$data->setDefinitionId(4);
- self::$customFieldRepository->create($data);
+ self::$repository->create($data);
$this->assertEquals(4, $this->conn->getRowCount('CustomFieldData'));
}
@@ -325,8 +325,8 @@ class CustomFieldRepositoryTest extends DatabaseTestCase
*/
public function testDeleteCustomFieldDefinitionData()
{
- $this->assertEquals(1, self::$customFieldRepository->deleteCustomFieldDefinitionData(1));
- $this->assertEquals(1, self::$customFieldRepository->deleteCustomFieldDefinitionData(2));
+ $this->assertEquals(1, self::$repository->deleteCustomFieldDefinitionData(1));
+ $this->assertEquals(1, self::$repository->deleteCustomFieldDefinitionData(2));
$this->assertEquals(0, $this->conn->getRowCount('CustomFieldData'));
}
@@ -344,7 +344,7 @@ class CustomFieldRepositoryTest extends DatabaseTestCase
$data->setData('cuenta');
$data->setKey('nan');
- $this->assertEquals(1, self::$customFieldRepository->update($data));
+ $this->assertEquals(1, self::$repository->update($data));
$data = new CustomFieldData();
$data->setId(1);
@@ -353,7 +353,7 @@ class CustomFieldRepositoryTest extends DatabaseTestCase
$data->setData('categoria');
$data->setKey('nan');
- $this->assertEquals(1, self::$customFieldRepository->update($data));
+ $this->assertEquals(1, self::$repository->update($data));
$data = new CustomFieldData();
@@ -363,7 +363,7 @@ class CustomFieldRepositoryTest extends DatabaseTestCase
$data->setData('cuenta');
$data->setKey('nan');
- $this->assertEquals(0, self::$customFieldRepository->update($data));
+ $this->assertEquals(0, self::$repository->update($data));
$data = new CustomFieldData();
$data->setId(2);
@@ -372,9 +372,9 @@ class CustomFieldRepositoryTest extends DatabaseTestCase
$data->setData('categoria');
$data->setKey('nan');
- $this->assertEquals(0, self::$customFieldRepository->update($data));
+ $this->assertEquals(0, self::$repository->update($data));
- $this->assertEquals(0, self::$customFieldRepository->update(new CustomFieldData()));
+ $this->assertEquals(0, self::$repository->update(new CustomFieldData()));
$data = new CustomFieldData();
$data->setId(2);
@@ -383,7 +383,7 @@ class CustomFieldRepositoryTest extends DatabaseTestCase
$data->setData('nan');
$data->setKey('nan');
- $this->assertEquals(0, self::$customFieldRepository->update($data));
+ $this->assertEquals(0, self::$repository->update($data));
$this->assertEquals(2, $this->conn->getRowCount('CustomFieldData'));
}
diff --git a/tests/Repositories/CustomFieldTypeRepositoryTest.php b/tests/Repositories/CustomFieldTypeRepositoryTest.php
index 48f26243..db6bf63e 100644
--- a/tests/Repositories/CustomFieldTypeRepositoryTest.php
+++ b/tests/Repositories/CustomFieldTypeRepositoryTest.php
@@ -42,7 +42,7 @@ class CustomFieldTypeRepositoryTest extends DatabaseTestCase
/**
* @var CustomFieldTypeRepository
*/
- private static $customFieldTypeRepository;
+ private static $repository;
/**
* @throws \DI\NotFoundException
@@ -57,7 +57,7 @@ class CustomFieldTypeRepositoryTest extends DatabaseTestCase
self::$databaseConnectionData = $dic->get(DatabaseConnectionData::class);
// Inicializar el repositorio
- self::$customFieldTypeRepository = $dic->get(CustomFieldTypeRepository::class);
+ self::$repository = $dic->get(CustomFieldTypeRepository::class);
}
/**
@@ -68,13 +68,13 @@ class CustomFieldTypeRepositoryTest extends DatabaseTestCase
{
$countBefore = $this->conn->getRowCount('CustomFieldType');
- $this->assertEquals(2, self::$customFieldTypeRepository->deleteByIdBatch([3, 4, 100]));
- $this->assertEquals(0, self::$customFieldTypeRepository->deleteByIdBatch([]));
+ $this->assertEquals(2, self::$repository->deleteByIdBatch([3, 4, 100]));
+ $this->assertEquals(0, self::$repository->deleteByIdBatch([]));
$this->assertEquals($countBefore - 2, $this->conn->getRowCount('CustomFieldType'));
$this->expectException(ConstraintException::class);
- self::$customFieldTypeRepository->deleteByIdBatch([1, 2]);
+ self::$repository->deleteByIdBatch([1, 2]);
}
/**
@@ -85,14 +85,14 @@ class CustomFieldTypeRepositoryTest extends DatabaseTestCase
{
$countBefore = $this->conn->getRowCount('CustomFieldType');
- $this->assertEquals(1, self::$customFieldTypeRepository->delete(3));
- $this->assertEquals(0, self::$customFieldTypeRepository->delete(100));
+ $this->assertEquals(1, self::$repository->delete(3));
+ $this->assertEquals(0, self::$repository->delete(100));
$this->assertEquals($countBefore - 1, $this->conn->getRowCount('CustomFieldType'));
$this->expectException(ConstraintException::class);
- self::$customFieldTypeRepository->delete(1);
- self::$customFieldTypeRepository->delete(2);
+ self::$repository->delete(1);
+ self::$repository->delete(2);
}
/**
@@ -101,7 +101,7 @@ class CustomFieldTypeRepositoryTest extends DatabaseTestCase
*/
public function testGetAll()
{
- $result = self::$customFieldTypeRepository->getAll();
+ $result = self::$repository->getAll();
$this->assertCount(10, $result);
$this->assertInstanceOf(CustomFieldTypeData::class, $result[0]);
@@ -110,38 +110,6 @@ class CustomFieldTypeRepositoryTest extends DatabaseTestCase
$this->assertEquals('Texto', $result[0]->getText());
}
- /**
- * @throws ConstraintException
- * @throws \SP\Core\Exceptions\QueryException
- * @throws \SP\Core\Exceptions\SPException
- */
- public function testCreate()
- {
- $data = new CustomFieldTypeData();
- $data->setId(11);
- $data->setName('prueba');
- $data->setText('Prueba');
-
- $this->assertEquals(11, self::$customFieldTypeRepository->create($data));
- $this->assertEquals($data, self::$customFieldTypeRepository->getById(11));
- }
-
- /**
- * @throws ConstraintException
- * @throws \SP\Core\Exceptions\QueryException
- * @throws \SP\Core\Exceptions\SPException
- */
- public function testUpdate()
- {
- $data = new CustomFieldTypeData();
- $data->setId(10);
- $data->setName('prueba');
- $data->setText('Prueba');
-
- $this->assertEquals(1, self::$customFieldTypeRepository->update($data));
- $this->assertEquals($data, self::$customFieldTypeRepository->getById(10));
- }
-
/**
* @throws ConstraintException
* @throws \SP\Core\Exceptions\QueryException
@@ -154,10 +122,44 @@ class CustomFieldTypeRepositoryTest extends DatabaseTestCase
$data->setName('textarea');
$data->setText('Área de Texto');
- $this->assertEquals($data, self::$customFieldTypeRepository->getById(10));
+ $this->assertEquals($data, self::$repository->getById(10));
$this->expectException(NoSuchItemException::class);
- $this->assertEquals(0, self::$customFieldTypeRepository->getById(11));
+ $this->assertEquals(0, self::$repository->getById(11));
+ }
+
+ /**
+ * @depends testGetById
+ * @throws ConstraintException
+ * @throws \SP\Core\Exceptions\QueryException
+ * @throws \SP\Core\Exceptions\SPException
+ */
+ public function testCreate()
+ {
+ $data = new CustomFieldTypeData();
+ $data->setId(11);
+ $data->setName('prueba');
+ $data->setText('Prueba');
+
+ $this->assertEquals(11, self::$repository->create($data));
+ $this->assertEquals($data, self::$repository->getById(11));
+ }
+
+ /**
+ * @depends testGetById
+ * @throws ConstraintException
+ * @throws \SP\Core\Exceptions\QueryException
+ * @throws \SP\Core\Exceptions\SPException
+ */
+ public function testUpdate()
+ {
+ $data = new CustomFieldTypeData();
+ $data->setId(10);
+ $data->setName('prueba');
+ $data->setText('Prueba');
+
+ $this->assertEquals(1, self::$repository->update($data));
+ $this->assertEquals($data, self::$repository->getById(10));
}
}
diff --git a/tests/Repositories/EventlogRepositoryTest.php b/tests/Repositories/EventlogRepositoryTest.php
index 974a7e6a..d9e6debd 100644
--- a/tests/Repositories/EventlogRepositoryTest.php
+++ b/tests/Repositories/EventlogRepositoryTest.php
@@ -45,7 +45,7 @@ class EventlogRepositoryTest extends DatabaseTestCase
/**
* @var EventlogRepository
*/
- private static $eventlogRepository;
+ private static $repository;
/**
* @throws \DI\NotFoundException
@@ -60,7 +60,7 @@ class EventlogRepositoryTest extends DatabaseTestCase
self::$databaseConnectionData = $dic->get(DatabaseConnectionData::class);
// Inicializar el repositorio
- self::$eventlogRepository = $dic->get(EventlogRepository::class);
+ self::$repository = $dic->get(EventlogRepository::class);
}
/**
@@ -75,7 +75,7 @@ class EventlogRepositoryTest extends DatabaseTestCase
$itemSearchData->setLimitCount(10);
$itemSearchData->setSeachString('login.auth.database');
- $result = self::$eventlogRepository->search($itemSearchData);
+ $result = self::$repository->search($itemSearchData);
$data = $result->getDataAsArray();
$this->assertEquals(4, $result->getNumRows());
@@ -85,7 +85,7 @@ class EventlogRepositoryTest extends DatabaseTestCase
$itemSearchData->setSeachString('login.auth.');
- $result = self::$eventlogRepository->search($itemSearchData);
+ $result = self::$repository->search($itemSearchData);
$data = $result->getDataAsArray();
$this->assertEquals(4, $result->getNumRows());
@@ -94,7 +94,7 @@ class EventlogRepositoryTest extends DatabaseTestCase
$itemSearchData->setSeachString('Tiempo inactivo : 0 min.');
- $result = self::$eventlogRepository->search($itemSearchData);
+ $result = self::$repository->search($itemSearchData);
$data = $result->getDataAsArray();
$this->assertEquals(1, $result->getNumRows());
@@ -103,7 +103,7 @@ class EventlogRepositoryTest extends DatabaseTestCase
$itemSearchData->setSeachString('prueba');
- $result = self::$eventlogRepository->search($itemSearchData);
+ $result = self::$repository->search($itemSearchData);
$this->assertCount(0, $result->getDataAsArray());
$this->assertEquals(0, $result->getNumRows());
@@ -117,7 +117,7 @@ class EventlogRepositoryTest extends DatabaseTestCase
*/
public function testClear()
{
- self::$eventlogRepository->clear();
+ self::$repository->clear();
$this->assertEquals(0, $this->conn->getRowCount('EventLog'));
}
@@ -140,7 +140,7 @@ class EventlogRepositoryTest extends DatabaseTestCase
$countBefore = $this->conn->getRowCount('EventLog');
- self::$eventlogRepository->create($eventlogData);
+ self::$repository->create($eventlogData);
$countAfter = $this->conn->getRowCount('EventLog');
@@ -148,7 +148,7 @@ class EventlogRepositoryTest extends DatabaseTestCase
$this->expectException(ConstraintException::class);
- self::$eventlogRepository->create(new EventlogData());
+ self::$repository->create(new EventlogData());
}
/**
diff --git a/tests/Repositories/NotificationRepositoryTest.php b/tests/Repositories/NotificationRepositoryTest.php
new file mode 100644
index 00000000..b24e3ef7
--- /dev/null
+++ b/tests/Repositories/NotificationRepositoryTest.php
@@ -0,0 +1,427 @@
+.
+ */
+
+namespace SP\Tests\Repositories;
+
+use DI\DependencyException;
+use SP\Core\Exceptions\ConstraintException;
+use SP\Core\Exceptions\QueryException;
+use SP\Core\Messages\NotificationMessage;
+use SP\DataModel\ItemSearchData;
+use SP\DataModel\NotificationData;
+use SP\Repositories\Notification\NotificationRepository;
+use SP\Storage\Database\DatabaseConnectionData;
+use SP\Tests\DatabaseTestCase;
+use function SP\Tests\setupContext;
+
+/**
+ * Class NotificationRepositoryTest
+ *
+ * @package SP\Tests\Repositories
+ */
+class NotificationRepositoryTest extends DatabaseTestCase
+{
+ /**
+ * @var NotificationRepository
+ */
+ private static $repository;
+
+ /**
+ * @throws DependencyException
+ * @throws \DI\NotFoundException
+ * @throws \SP\Core\Context\ContextException
+ */
+ public static function setUpBeforeClass()
+ {
+ $dic = setupContext();
+
+ // Datos de conexión a la BBDD
+ self::$databaseConnectionData = $dic->get(DatabaseConnectionData::class);
+
+ // Inicializar el repositorio
+ self::$repository = $dic->get(NotificationRepository::class);
+ }
+
+ /**
+ * @throws \SP\Core\Exceptions\ConstraintException
+ * @throws \SP\Core\Exceptions\QueryException
+ */
+ public function testDeleteAdmin()
+ {
+ $countBefore = $this->conn->getRowCount('Notification');
+
+ $this->assertEquals(1, self::$repository->deleteAdmin(3));
+ $this->assertEquals($countBefore - 1, $this->conn->getRowCount('Notification'));
+ }
+
+ /**
+ * @throws \SP\Core\Exceptions\ConstraintException
+ * @throws \SP\Core\Exceptions\QueryException
+ */
+ public function testDeleteAdminBatch()
+ {
+ $this->assertEquals(3, self::$repository->deleteAdminBatch([1, 2, 3, 5]));
+ $this->assertEquals(0, $this->conn->getRowCount('Notification'));
+ }
+
+ /**
+ * @throws \SP\Core\Exceptions\ConstraintException
+ * @throws \SP\Core\Exceptions\QueryException
+ */
+ public function testGetByIdBatch()
+ {
+ $this->assertEquals(0, self::$repository->getByIdBatch([])->getNumRows());
+
+ $result = self::$repository->getByIdBatch([1, 2, 3, 4]);
+ /** @var NotificationData[] $data */
+ $data = $result->getDataAsArray();
+
+ $this->assertCount(3, $data);
+ $this->assertInstanceOf(NotificationData::class, $data[0]);
+ $this->assertEquals(1, $data[0]->getId());
+ $this->assertEquals('Prueba', $data[0]->getType());
+ $this->assertEquals('Accounts', $data[0]->getComponent());
+ $this->assertEquals('Notificación de prueba', trim($data[0]->getDescription()));
+ $this->assertEquals(1529145158, $data[0]->getDate());
+ $this->assertEquals(0, $data[0]->isChecked());
+ $this->assertEquals(0, $data[0]->isOnlyAdmin());
+ $this->assertEquals(0, $data[0]->isSticky());
+ $this->assertEquals(2, $data[0]->getUserId());
+
+ $this->assertEquals(2, $data[1]->getId());
+ $this->assertEquals(3, $data[2]->getId());
+ }
+
+ /**
+ * @throws ConstraintException
+ * @throws QueryException
+ */
+ public function testGetById()
+ {
+ $result = self::$repository->getById(3);
+ /** @var NotificationData $data */
+ $data = $result->getData();
+
+ $this->assertEquals(1, $result->getNumRows());
+ $this->assertInstanceOf(NotificationData::class, $data);
+ $this->assertEquals(3, $data->getId());
+
+ $result = self::$repository->getById(4);
+ $this->assertEquals(0, $result->getNumRows());
+ }
+
+ /**
+ * @depends testGetById
+ * @throws \SP\Core\Exceptions\ConstraintException
+ * @throws \SP\Core\Exceptions\QueryException
+ */
+ public function testCreate()
+ {
+ $data = new NotificationData();
+ $data->setId(4);
+ $data->setUserId(2);
+ $data->setDate(time());
+ $data->setType('Test');
+ $data->setComponent('Config');
+ $data->setDescription(NotificationMessage::factory()->setTitle('Prueba')->setDescription(['blablabla']));
+ $data->setChecked(0);
+ $data->setOnlyAdmin(1);
+ $data->setSticky(1);
+
+ $this->assertEquals(4, self::$repository->create($data)->getLastId());
+
+ $this->assertEquals($data, self::$repository->getById(4)->getData());
+
+ }
+
+ /**
+ * @throws \SP\Core\Exceptions\ConstraintException
+ * @throws \SP\Core\Exceptions\QueryException
+ */
+ public function testSearch()
+ {
+ $itemSearchData = new ItemSearchData();
+ $itemSearchData->setLimitCount(10);
+ $itemSearchData->setSeachString('Test');
+
+ $result = self::$repository->search($itemSearchData);
+
+ $this->assertEquals(2, $result->getNumRows());
+
+ $itemSearchData->setSeachString('Global');
+
+ $result = self::$repository->search($itemSearchData);
+ /** @var NotificationData[] $data */
+ $data = $result->getDataAsArray();
+
+ $this->assertEquals(1, $result->getNumRows());
+ $this->assertCount(1, $data);
+ $this->assertInstanceOf(NotificationData::class, $data[0]);
+ $this->assertEquals(2, $data[0]->getId());
+ $this->assertEquals('Global', $data[0]->getType());
+
+ $itemSearchData->setSeachString('');
+
+ $result = self::$repository->search($itemSearchData);
+
+ $this->assertEquals(3, $result->getNumRows());
+ $this->assertCount(3, $result->getDataAsArray());
+
+ $itemSearchData->setSeachString('Accounts');
+
+ $result = self::$repository->search($itemSearchData);
+ /** @var NotificationData[] $data */
+ $data = $result->getDataAsArray();
+
+ $this->assertEquals(3, $result->getNumRows());
+ $this->assertCount(3, $data);
+ $this->assertEquals(1529145313, $data[0]->getDate());
+ $this->assertEquals('Accounts', $data[0]->getComponent());
+ $this->assertEquals(1529145296, $data[1]->getDate());
+ $this->assertEquals('Accounts', $data[1]->getComponent());
+ $this->assertEquals(1529145158, $data[2]->getDate());
+ $this->assertEquals('Accounts', $data[2]->getComponent());
+ }
+
+ /**
+ * @throws \SP\Core\Exceptions\ConstraintException
+ * @throws \SP\Core\Exceptions\QueryException
+ */
+ public function testSetCheckedById()
+ {
+ $this->assertEquals(1, self::$repository->setCheckedById(1));
+ $this->assertEquals(0, self::$repository->setCheckedById(4));
+ }
+
+ /**
+ * @depends testGetById
+ * @throws \SP\Core\Exceptions\ConstraintException
+ * @throws \SP\Core\Exceptions\QueryException
+ */
+ public function testUpdate()
+ {
+ $data = new NotificationData();
+ $data->setId(3);
+ $data->setUserId(2);
+ $data->setDate(time());
+ $data->setType('Test');
+ $data->setComponent('Config');
+ $data->setDescription(NotificationMessage::factory()->setTitle('Prueba')->setDescription(['blablabla']));
+ $data->setChecked(0);
+ $data->setOnlyAdmin(1);
+ $data->setSticky(1);
+
+ $this->assertEquals(1, self::$repository->update($data));
+
+ $this->assertEquals($data, self::$repository->getById(3)->getData());
+
+ $data->setId(4);
+
+ $this->assertEquals(0, self::$repository->update($data));
+
+ $data = new NotificationData();
+ $data->setId(1);
+
+ $this->expectException(ConstraintException::class);
+
+ $this->assertEquals(0, self::$repository->update($data));
+ }
+
+ /**
+ * @throws ConstraintException
+ * @throws QueryException
+ */
+ public function testSearchForUserId()
+ {
+ $itemSearchData = new ItemSearchData();
+ $itemSearchData->setLimitCount(10);
+ $itemSearchData->setSeachString('Test');
+
+ $result = self::$repository->searchForUserId($itemSearchData, 2);
+ /** @var NotificationData[] $data */
+ $data = $result->getDataAsArray();
+
+ $this->assertEquals(1, $result->getNumRows());
+ $this->assertCount(1, $data);
+ $this->assertEquals(2, $data[0]->getId());
+
+ $itemSearchData->setSeachString('Accounts');
+
+ $result = self::$repository->searchForUserId($itemSearchData, 2);
+ /** @var NotificationData[] $data */
+ $data = $result->getDataAsArray();
+
+ $this->assertEquals(2, $result->getNumRows());
+ $this->assertCount(2, $data);
+ $this->assertEquals(2, $data[0]->getId());
+ $this->assertEquals(1, $data[1]->getId());
+
+ $itemSearchData->setSeachString('Admins');
+
+ $result = self::$repository->searchForUserId($itemSearchData, 2);
+
+ $this->assertEquals(0, $result->getNumRows());
+
+ $itemSearchData->setSeachString('Global');
+
+ $result = self::$repository->searchForUserId($itemSearchData, 2);
+ /** @var NotificationData[] $data */
+ $data = $result->getDataAsArray();
+
+ $this->assertEquals(1, $result->getNumRows());
+ $this->assertCount(1, $data);
+ $this->assertEquals(2, $data[0]->getId());
+
+ $itemSearchData->setSeachString('');
+
+ $result = self::$repository->searchForUserId($itemSearchData, 2);
+ /** @var NotificationData[] $data */
+ $data = $result->getDataAsArray();
+
+ $this->assertEquals(2, $result->getNumRows());
+ $this->assertCount(2, $data);
+ $this->assertEquals(2, $data[0]->getId());
+ $this->assertEquals(1, $data[1]->getId());
+ }
+
+ /**
+ * @throws ConstraintException
+ * @throws QueryException
+ */
+ public function testGetAll()
+ {
+ $result = self::$repository->getAll();
+
+ /** @var NotificationData[] $data */
+ $data = $result->getDataAsArray();
+
+ $this->assertEquals(3, $result->getNumRows());
+ $this->assertCount(3, $data);
+ $this->assertEquals(1, $data[0]->getId());
+ $this->assertEquals(2, $data[1]->getId());
+ $this->assertEquals(3, $data[2]->getId());
+ }
+
+ /**
+ * @throws ConstraintException
+ * @throws QueryException
+ */
+ public function testGetForUserIdByDate()
+ {
+ $result = self::$repository->getForUserIdByDate('Accounts', 2);
+ /** @var NotificationData[] $data */
+ $data = $result->getDataAsArray();
+
+ $this->assertEquals(1, $result->getNumRows());
+ $this->assertCount(1, $data);
+ $this->assertEquals(1, $data[0]->getId());
+
+ $result = self::$repository->getForUserIdByDate('Accounts', 3);
+
+ $this->assertEquals(0, $result->getNumRows());
+ }
+
+ /**
+ * @throws ConstraintException
+ * @throws QueryException
+ */
+ public function testDelete()
+ {
+ $this->assertEquals(1, self::$repository->delete(3));
+ $this->assertEquals(0, self::$repository->delete(4));
+ }
+
+ /**
+ * @throws ConstraintException
+ * @throws QueryException
+ */
+ public function testGetAllForUserId()
+ {
+ $result = self::$repository->getAllForUserId(2);
+ /** @var NotificationData[] $data */
+ $data = $result->getDataAsArray();
+
+ $this->assertEquals(2, $result->getNumRows());
+ $this->assertCount(2, $data);
+ $this->assertEquals(2, $data[0]->getId());
+ $this->assertEquals(1, $data[1]->getId());
+
+ $result = self::$repository->getAllForUserId(3);
+
+ $this->assertEquals(1, $result->getNumRows());
+ }
+
+ /**
+ * @throws ConstraintException
+ * @throws QueryException
+ */
+ public function testDeleteByIdBatch()
+ {
+ $this->assertEquals(2, self::$repository->deleteByIdBatch([1, 2, 3, 4]));
+ $this->assertEquals(0, self::$repository->deleteByIdBatch([]));
+
+ $this->assertEquals(1, $this->conn->getRowCount('Notification'));
+ }
+
+ /**
+ * @depends testSetCheckedById
+ *
+ * @throws ConstraintException
+ * @throws QueryException
+ */
+ public function testGetAllActiveForUserId()
+ {
+ $result = self::$repository->getAllActiveForUserId(2);
+ /** @var NotificationData[] $data */
+ $data = $result->getDataAsArray();
+
+ $this->assertEquals(2, $result->getNumRows());
+ $this->assertCount(2, $data);
+ $this->assertEquals(2, $data[0]->getId());
+ $this->assertEquals(1, $data[1]->getId());
+
+ $result = self::$repository->getAllActiveForUserId(3);
+ /** @var NotificationData[] $data */
+ $data = $result->getDataAsArray();
+
+ $this->assertEquals(1, $result->getNumRows());
+ $this->assertCount(1, $data);
+ $this->assertEquals(2, $data[0]->getId());
+
+ self::$repository->setCheckedById(1);
+
+ $result = self::$repository->getAllActiveForUserId(2);
+ /** @var NotificationData[] $data */
+ $data = $result->getDataAsArray();
+
+ $this->assertEquals(1, $result->getNumRows());
+ $this->assertCount(1, $data);
+ $this->assertEquals(2, $data[0]->getId());
+
+ self::$repository->setCheckedById(2);
+
+ $this->assertEquals(0, self::$repository->getAllActiveForUserId(2)->getNumRows());
+ $this->assertEquals(0, self::$repository->getAllActiveForUserId(3)->getNumRows());
+ }
+}
diff --git a/tests/Repositories/PluginRepositoryTest.php b/tests/Repositories/PluginRepositoryTest.php
new file mode 100644
index 00000000..3ed5b074
--- /dev/null
+++ b/tests/Repositories/PluginRepositoryTest.php
@@ -0,0 +1,374 @@
+.
+ */
+
+namespace SP\Tests\Repositories;
+
+use DI\DependencyException;
+use PHPUnit\DbUnit\DataSet\IDataSet;
+use SP\Core\Exceptions\ConstraintException;
+use SP\DataModel\ItemData;
+use SP\DataModel\ItemSearchData;
+use SP\DataModel\PluginData;
+use SP\Repositories\Plugin\PluginRepository;
+use SP\Storage\Database\DatabaseConnectionData;
+use SP\Tests\DatabaseTestCase;
+use function SP\Tests\setupContext;
+
+/**
+ * Class PluginRepositoryTest
+ *
+ * @package SP\Tests\Repositories
+ */
+class PluginRepositoryTest extends DatabaseTestCase
+{
+ /**
+ * @var PluginRepository
+ */
+ private static $repository;
+
+ /**
+ * @throws DependencyException
+ * @throws \DI\NotFoundException
+ * @throws \SP\Core\Context\ContextException
+ */
+ public static function setUpBeforeClass()
+ {
+ $dic = setupContext();
+
+ // Datos de conexión a la BBDD
+ self::$databaseConnectionData = $dic->get(DatabaseConnectionData::class);
+
+ // Inicializar el repositorio
+ self::$repository = $dic->get(PluginRepository::class);
+ }
+
+ /**
+ * @throws \SP\Core\Exceptions\ConstraintException
+ * @throws \SP\Core\Exceptions\QueryException
+ */
+ public function testUpdate()
+ {
+ $data = new PluginData();
+ $data->setId(1);
+ $data->setName('Authenticator 2');
+ $data->setAvailable(1);
+ $data->setEnabled(1);
+ $data->setData('data');
+
+ $this->assertEquals(1, self::$repository->update($data));
+
+ $result = self::$repository->getById(1);
+
+ $this->assertEquals(1, $result->getNumRows());
+ $this->assertEquals($data, $result->getData());
+
+ $data->setId(null);
+ $data->setName('Authenticator');
+
+ $this->assertEquals(0, self::$repository->update($data));
+
+ $data->setId(2);
+ $data->setName('DokuWiki');
+
+ $this->expectException(ConstraintException::class);
+
+ self::$repository->update($data);
+ }
+
+ /**
+ * @throws ConstraintException
+ * @throws \SP\Core\Exceptions\QueryException
+ */
+ public function testGetAll()
+ {
+ $result = self::$repository->getAll();
+ /** @var PluginData[] $data */
+ $data = $result->getDataAsArray();
+
+ $this->assertEquals(3, $result->getNumRows());
+ $this->assertCount(3, $data);
+ $this->assertEquals(1, $data[0]->getId());
+ $this->assertEquals('Authenticator', $data[0]->getName());
+ $this->assertNull($data[0]->getData());
+ $this->assertEquals(1, $data[0]->getAvailable());
+ $this->assertEquals(0, $data[0]->getEnabled());
+
+ $this->assertEquals(3, $data[1]->getId());
+ $this->assertEquals(2, $data[2]->getId());
+ }
+
+ /**
+ * @throws ConstraintException
+ * @throws \SP\Core\Exceptions\QueryException
+ */
+ public function testGetByName()
+ {
+ $result = self::$repository->getByName('Authenticator');
+ /** @var PluginData $data */
+ $data = $result->getData();
+
+ $this->assertEquals(1, $result->getNumRows());
+ $this->assertInstanceOf(PluginData::class, $data);
+ $this->assertEquals(1, $data->getId());
+ $this->assertEquals('Authenticator', $data->getName());
+ $this->assertNull($data->getData());
+ $this->assertEquals(1, $data->getAvailable());
+ $this->assertEquals(0, $data->getEnabled());
+
+ $this->assertEquals(0, self::$repository->getById('Authenticator 2')->getNumRows());
+ }
+
+ /**
+ * @depends testGetByName
+ * @throws ConstraintException
+ * @throws \SP\Core\Exceptions\QueryException
+ */
+ public function testToggleAvailableByName()
+ {
+ $this->assertEquals(1, self::$repository->toggleAvailableByName('Authenticator', 0));
+
+ /** @var PluginData $data */
+ $data = self::$repository->getByName('Authenticator')->getData();
+
+ $this->assertEquals(0, $data->getAvailable());
+
+ $this->assertEquals(0, self::$repository->toggleAvailableByName('Authenticator 2', 1));
+ }
+
+ /**
+ * @requires testGetById
+ * @throws ConstraintException
+ * @throws \SP\Core\Exceptions\QueryException
+ * @throws \SP\Core\Exceptions\SPException
+ */
+ public function testDelete()
+ {
+ $this->assertEquals(1, self::$repository->delete(1));
+ $this->assertEquals(0, self::$repository->getById(1)->getNumRows());
+
+ $this->assertEquals(0, self::$repository->delete(4));
+ }
+
+ /**
+ * @throws ConstraintException
+ * @throws \SP\Core\Exceptions\QueryException
+ */
+ public function testToggleEnabled()
+ {
+ $this->assertEquals(1, self::$repository->toggleEnabled(1, 1));
+ $this->assertEquals(0, self::$repository->toggleEnabled(4, 0));
+ }
+
+ /**
+ * @throws ConstraintException
+ * @throws \SP\Core\Exceptions\QueryException
+ */
+ public function testGetById()
+ {
+ $result = self::$repository->getById(1);
+ /** @var PluginData $data */
+ $data = $result->getData();
+
+ $this->assertEquals(1, $result->getNumRows());
+ $this->assertInstanceOf(PluginData::class, $data);
+ $this->assertEquals(1, $data->getId());
+ $this->assertEquals('Authenticator', $data->getName());
+ $this->assertNull($data->getData());
+ $this->assertEquals(1, $data->getAvailable());
+ $this->assertEquals(0, $data->getEnabled());
+
+ $this->assertEquals(0, self::$repository->getById(4)->getNumRows());
+ }
+
+ /**
+ * @throws ConstraintException
+ * @throws \SP\Core\Exceptions\QueryException
+ * @throws \SP\Core\Exceptions\SPException
+ */
+ public function testDeleteByIdBatch()
+ {
+ $this->assertEquals(2, self::$repository->deleteByIdBatch([1, 2, 4]));
+ $this->assertEquals(0, self::$repository->deleteByIdBatch([]));
+ }
+
+ /**
+ * @throws ConstraintException
+ * @throws \SP\Core\Exceptions\QueryException
+ */
+ public function testGetEnabled()
+ {
+ $result = self::$repository->getEnabled();
+ /** @var ItemData[] $data */
+ $data = $result->getDataAsArray();
+
+ $this->assertEquals(2, $result->getNumRows());
+ $this->assertCount(2, $data);
+ $this->assertInstanceOf(ItemData::class, $data[0]);
+ $this->assertEquals(2, $data[0]->getId());
+ $this->assertEquals('XML Exporter', $data[0]->getName());
+ $this->assertInstanceOf(ItemData::class, $data[1]);
+ $this->assertEquals(3, $data[1]->getId());
+ $this->assertEquals('DokuWiki', $data[1]->getName());
+ }
+
+ /**
+ * @depends testGetById
+ * @throws ConstraintException
+ * @throws \SP\Core\Exceptions\QueryException
+ */
+ public function testCreate()
+ {
+ $data = new PluginData();
+ $data->setId(4);
+ $data->setName('Authenticator 2');
+ $data->setAvailable(1);
+ $data->setEnabled(1);
+ $data->setData('data');
+
+ $this->assertEquals(4, self::$repository->create($data)->getLastId());
+
+ $result = self::$repository->getById(4);
+
+ $this->assertEquals(1, $result->getNumRows());
+ $this->assertEquals($data, $result->getData());
+
+
+ $this->expectException(ConstraintException::class);
+
+ self::$repository->create($data);
+
+ self::$repository->create(new PluginData());
+ }
+
+ /**
+ * @depends testGetById
+ * @throws ConstraintException
+ * @throws \SP\Core\Exceptions\QueryException
+ */
+ public function testResetById()
+ {
+ $this->assertEquals(1, self::$repository->resetById(2));
+
+ /** @var PluginData $data */
+ $data = self::$repository->getById(2)->getData();
+
+ $this->assertNull($data->getData());
+
+ $this->assertEquals(0, self::$repository->resetById(4));
+ }
+
+ /**
+ * @throws ConstraintException
+ * @throws \SP\Core\Exceptions\QueryException
+ */
+ public function testSearch()
+ {
+ $itemSearchData = new ItemSearchData();
+ $itemSearchData->setLimitCount(10);
+ $itemSearchData->setSeachString('Auth');
+
+ $result = self::$repository->search($itemSearchData);
+ /** @var PluginData[] $data */
+ $data = $result->getDataAsArray();
+
+ $this->assertEquals(1, $result->getNumRows());
+ $this->assertCount(1, $data);
+ $this->assertEquals(1, $data[0]->getId());
+ $this->assertEquals('Authenticator', $data[0]->getName());
+ $this->assertEquals(0, $data[0]->getEnabled());
+ $this->assertEquals(1, $data[0]->getAvailable());
+
+ $itemSearchData->setSeachString('test');
+
+ $result = self::$repository->search($itemSearchData);
+ $this->assertEquals(0, $result->getNumRows());
+
+ $itemSearchData->setSeachString('');
+
+ $result = self::$repository->search($itemSearchData);
+ $this->assertEquals(3, $result->getNumRows());
+ }
+
+ /**
+ * @throws ConstraintException
+ * @throws \SP\Core\Exceptions\QueryException
+ */
+ public function testToggleEnabledByName()
+ {
+ $this->assertEquals(1, self::$repository->toggleEnabledByName('Authenticator', 1));
+
+ /** @var PluginData $data */
+ $data = self::$repository->getByName('Authenticator')->getData();
+
+ $this->assertEquals(1, $data->getEnabled());
+
+ $this->assertEquals(0, self::$repository->toggleEnabledByName('Test', 0));
+ }
+
+ /**
+ * @throws ConstraintException
+ * @throws \SP\Core\Exceptions\QueryException
+ */
+ public function testToggleAvailable()
+ {
+ $this->assertEquals(1, self::$repository->toggleAvailable(1, 0));
+
+ /** @var PluginData $data */
+ $data = self::$repository->getByName('Authenticator')->getData();
+
+ $this->assertEquals(0, $data->getAvailable());
+
+ $this->assertEquals(0, self::$repository->toggleAvailable(4, 1));
+ }
+
+ /**
+ * @throws ConstraintException
+ * @throws \SP\Core\Exceptions\QueryException
+ */
+ public function testGetByIdBatch()
+ {
+ $result = self::$repository->getByIdBatch([1, 2, 4]);
+ /** @var PluginData[] $data */
+ $data = $result->getDataAsArray();
+
+ $this->assertEquals(2, $result->getNumRows());
+ $this->assertCount(2, $data);
+ $this->assertEquals(1, $data[0]->getId());
+ $this->assertEquals(2, $data[1]->getId());
+
+ $result = self::$repository->getByIdBatch([]);
+
+ $this->assertEquals(0, $result->getNumRows());
+ }
+
+ /**
+ * Returns the test dataset.
+ *
+ * @return IDataSet
+ */
+ protected function getDataSet()
+ {
+ return $this->createMySQLXMLDataSet(RESOURCE_DIR . DIRECTORY_SEPARATOR . 'datasets' . DIRECTORY_SEPARATOR . 'syspass_plugin.xml');
+ }
+}
diff --git a/tests/Repositories/PublicLinkRepositoryTest.php b/tests/Repositories/PublicLinkRepositoryTest.php
new file mode 100644
index 00000000..a75b9d77
--- /dev/null
+++ b/tests/Repositories/PublicLinkRepositoryTest.php
@@ -0,0 +1,450 @@
+.
+ */
+
+namespace SP\Tests\Repositories;
+
+use DI\DependencyException;
+use SP\Core\Exceptions\ConstraintException;
+use SP\DataModel\ItemSearchData;
+use SP\DataModel\PublicLinkData;
+use SP\DataModel\PublicLinkListData;
+use SP\Repositories\DuplicatedItemException;
+use SP\Repositories\PublicLink\PublicLinkRepository;
+use SP\Services\PublicLink\PublicLinkService;
+use SP\Storage\Database\DatabaseConnectionData;
+use SP\Tests\DatabaseTestCase;
+use SP\Util\Util;
+use function SP\Tests\setupContext;
+
+/**
+ * Class PublicLinkRepositoryTest
+ *
+ * @package SP\Tests\Repositories
+ */
+class PublicLinkRepositoryTest extends DatabaseTestCase
+{
+ /**
+ * @var PublicLinkRepository
+ */
+ private static $repository;
+
+ /**
+ * @throws DependencyException
+ * @throws \DI\NotFoundException
+ * @throws \SP\Core\Context\ContextException
+ */
+ public static function setUpBeforeClass()
+ {
+ $dic = setupContext();
+
+ // Datos de conexión a la BBDD
+ self::$databaseConnectionData = $dic->get(DatabaseConnectionData::class);
+
+ // Inicializar el repositorio
+ self::$repository = $dic->get(PublicLinkRepository::class);
+ }
+
+ /**
+ * @throws \SP\Core\Exceptions\ConstraintException
+ * @throws \SP\Core\Exceptions\QueryException
+ */
+ public function testGetHashForItem()
+ {
+ $result = self::$repository->getHashForItem(2);
+ /** @var PublicLinkData $data */
+ $data = $result->getData();
+
+ $this->assertEquals(1, $result->getNumRows());
+ $this->assertEquals(1, $data->getId());
+ $this->assertEquals(pack('H*', '646134633934396166303637386334353130313363626137633133626463396137636135383731383034663137343134306636626161653236346464'), $data->getHash());
+
+ $result = self::$repository->getHashForItem(3);
+ $this->assertEquals(0, $result->getNumRows());
+ }
+
+ /**
+ * @throws \SP\Core\Exceptions\ConstraintException
+ * @throws \SP\Core\Exceptions\QueryException
+ */
+ public function testSearch()
+ {
+ $itemSearchData = new ItemSearchData();
+ $itemSearchData->setLimitCount(10);
+ $itemSearchData->setSeachString('Google');
+
+ $result = self::$repository->search($itemSearchData);
+ /** @var PublicLinkListData[] $data */
+ $data = $result->getDataAsArray();
+
+ $this->assertEquals(1, $result->getNumRows());
+ $this->assertCount(1, $data);
+ $this->assertInstanceOf(PublicLinkListData::class, $data[0]);
+ $this->assertEquals(2, $data[0]->getId());
+ $this->assertEquals(1, $data[0]->getItemId());
+ $this->assertEquals(pack('H*', '313065363937306666653833623531393234356635333433333732626366663433376461623565356134386238326131653238636131356235346635'), $data[0]->getHash());
+ $this->assertNotEmpty($data[0]->getData());
+ $this->assertEquals(1, $data[0]->getUserId());
+ $this->assertEquals(1, $data[0]->getTypeId());
+ $this->assertEquals(0, $data[0]->isNotify());
+ $this->assertEquals(1529228863, $data[0]->getDateAdd());
+ $this->assertEquals(1529229463, $data[0]->getDateExpire());
+ $this->assertEquals(0, $data[0]->getDateUpdate());
+ $this->assertEquals(0, $data[0]->getCountViews());
+ $this->assertEquals(3, $data[0]->getMaxCountViews());
+ $this->assertEquals(0, $data[0]->getTotalCountViews());
+ $this->assertNull($data[0]->getUseInfo());
+ $this->assertEquals('Google', $data[0]->getAccountName());
+ $this->assertEquals('admin', $data[0]->getUserLogin());
+
+ $itemSearchData->setSeachString('Apple');
+
+ $result = self::$repository->search($itemSearchData);
+ /** @var PublicLinkListData[] $data */
+ $data = $result->getDataAsArray();
+
+ $this->assertEquals(1, $result->getNumRows());
+ $this->assertCount(1, $data);
+ $this->assertInstanceOf(PublicLinkListData::class, $data[0]);
+ $this->assertEquals(1, $data[0]->getId());
+ $this->assertEquals(2, $data[0]->getItemId());
+
+ $itemSearchData->setSeachString('');
+
+ $result = self::$repository->search($itemSearchData);
+
+ $this->assertEquals(2, $result->getNumRows());
+ }
+
+ /**
+ * @throws \SP\Core\Exceptions\ConstraintException
+ * @throws \SP\Core\Exceptions\QueryException
+ */
+ public function testDeleteByIdBatch()
+ {
+ $this->assertEquals(2, self::$repository->deleteByIdBatch([1, 2, 3]));
+ $this->assertEquals(0, self::$repository->deleteByIdBatch([]));
+
+ $this->assertEquals(0, $this->conn->getRowCount('PublicLink'));
+ }
+
+ /**
+ * @covers \SP\Repositories\PublicLink\PublicLinkRepository::checkDuplicatedOnAdd()
+ * @throws \Defuse\Crypto\Exception\EnvironmentIsBrokenException
+ * @throws \SP\Core\Exceptions\ConstraintException
+ * @throws \SP\Core\Exceptions\QueryException
+ * @throws \SP\Repositories\DuplicatedItemException
+ * @throws \SP\Core\Exceptions\SPException
+ */
+ public function testCreate()
+ {
+ self::$repository->delete(2);
+
+ $data = new PublicLinkData();
+ $data->setItemId(1);
+ $data->setHash(Util::generateRandomBytes());
+ $data->setData('data');
+ $data->setUserId(1);
+ $data->setTypeId(1);
+ $data->setNotify(1);
+ $data->setDateExpire(time() + 600);
+ $data->setDateAdd(time());
+ $data->setMaxCountViews(3);
+
+ $this->assertEquals(3, self::$repository->create($data)->getLastId());
+
+ /** @var PublicLinkListData $resultData */
+ $resultData = self::$repository->getById(3)->getData();
+
+ $this->assertEquals(3, $resultData->getId());
+ $this->assertEquals($data->getItemId(), $resultData->getItemId());
+ $this->assertEquals($data->getHash(), $resultData->getHash());
+ $this->assertEquals($data->getData(), $resultData->getData());
+ $this->assertEquals($data->getUserId(), $resultData->getUserId());
+ $this->assertEquals($data->getTypeId(), $resultData->getTypeId());
+ $this->assertEquals($data->isNotify(), $resultData->isNotify());
+ $this->assertEquals($data->getDateExpire(), $resultData->getDateExpire());
+ $this->assertEquals($data->getDateAdd(), $resultData->getDateAdd());
+ $this->assertEquals($data->getMaxCountViews(), $resultData->getMaxCountViews());
+
+ $this->expectException(DuplicatedItemException::class);
+
+ self::$repository->create($data);
+
+ $this->expectException(ConstraintException::class);
+
+ $data->setItemId(3);
+
+ self::$repository->create($data);
+ }
+
+ /**
+ * @throws ConstraintException
+ * @throws \SP\Core\Exceptions\QueryException
+ */
+ public function testGetById()
+ {
+ $result = self::$repository->getById(2);
+ /** @var PublicLinkListData $data */
+ $data = $result->getData();
+
+ $this->assertEquals(1, $result->getNumRows());
+ $this->assertInstanceOf(PublicLinkListData::class, $data);
+ $this->assertEquals(2, $data->getId());
+ $this->assertEquals(1, $data->getItemId());
+ $this->assertEquals(pack('H*', '313065363937306666653833623531393234356635333433333732626366663433376461623565356134386238326131653238636131356235346635'), $data->getHash());
+ $this->assertNotEmpty($data->getData());
+ $this->assertEquals(1, $data->getUserId());
+ $this->assertEquals(1, $data->getTypeId());
+ $this->assertEquals(0, $data->isNotify());
+ $this->assertEquals(1529228863, $data->getDateAdd());
+ $this->assertEquals(1529229463, $data->getDateExpire());
+ $this->assertEquals(0, $data->getDateUpdate());
+ $this->assertEquals(0, $data->getCountViews());
+ $this->assertEquals(3, $data->getMaxCountViews());
+ $this->assertEquals(0, $data->getTotalCountViews());
+ $this->assertNull($data->getUseInfo());
+ $this->assertEquals('Google', $data->getAccountName());
+ $this->assertEquals('admin', $data->getUserLogin());
+
+ $this->assertEquals(0, self::$repository->getById(3)->getNumRows());
+ }
+
+ /**
+ * @throws ConstraintException
+ * @throws \SP\Core\Exceptions\QueryException
+ */
+ public function testDelete()
+ {
+ $this->assertEquals(1, self::$repository->delete(1));
+ $this->assertEquals(1, self::$repository->delete(2));
+ $this->assertEquals(0, self::$repository->delete(3));
+
+ $this->assertEquals(0, $this->conn->getRowCount('PublicLink'));
+ }
+
+ /**
+ * @throws ConstraintException
+ * @throws \SP\Core\Exceptions\QueryException
+ */
+ public function testAddLinkView()
+ {
+ $hash = pack('H*', '313065363937306666653833623531393234356635333433333732626366663433376461623565356134386238326131653238636131356235346635');
+
+ $data = new PublicLinkData();
+ $data->setHash($hash);
+ $data->setUseInfo(PublicLinkService::getUseInfo($hash));
+
+ $this->assertEquals(1, self::$repository->addLinkView($data));
+
+ /** @var PublicLinkData $resultData */
+ $resultData = self::$repository->getByHash($hash)->getData();
+
+ $this->assertEquals(1, $resultData->getCountViews());
+ $this->assertEquals(1, $resultData->getTotalCountViews());
+ $this->assertEquals($data->getUseInfo(), $resultData->getUseInfo());
+ }
+
+ /**
+ * @throws ConstraintException
+ * @throws \SP\Core\Exceptions\QueryException
+ */
+ public function testGetByHash()
+ {
+ $hash = pack('H*', '313065363937306666653833623531393234356635333433333732626366663433376461623565356134386238326131653238636131356235346635');
+
+ $result = self::$repository->getByHash($hash);
+ /** @var PublicLinkData $data */
+ $data = $result->getData();
+
+ $this->assertEquals(1, $result->getNumRows());
+ $this->assertInstanceOf(PublicLinkData::class, $data);
+ $this->assertEquals(2, $data->getId());
+ $this->assertEquals(1, $data->getItemId());
+ $this->assertEquals($hash, $data->getHash());
+ $this->assertNotEmpty($data->getData());
+ $this->assertEquals(1, $data->getUserId());
+ $this->assertEquals(1, $data->getTypeId());
+ $this->assertEquals(0, $data->isNotify());
+ $this->assertEquals(1529228863, $data->getDateAdd());
+ $this->assertEquals(1529229463, $data->getDateExpire());
+ $this->assertEquals(0, $data->getDateUpdate());
+ $this->assertEquals(0, $data->getCountViews());
+ $this->assertEquals(3, $data->getMaxCountViews());
+ $this->assertEquals(0, $data->getTotalCountViews());
+ $this->assertNull($data->getUseInfo());
+
+ $this->assertEquals(0, self::$repository->getByHash('')->getNumRows());
+ }
+
+ /**
+ * @depends testGetById
+ * @throws ConstraintException
+ * @throws \SP\Core\Exceptions\QueryException
+ * @throws \SP\Core\Exceptions\SPException
+ * @throws \Defuse\Crypto\Exception\EnvironmentIsBrokenException
+ */
+ public function testRefresh()
+ {
+ $data = new PublicLinkData();
+ $data->setHash(Util::generateRandomBytes());
+ $data->setDateExpire(time() + 3600);
+ $data->setMaxCountViews(6);
+ $data->setData('data_new');
+ $data->setId(1);
+
+ $this->assertEquals(1, self::$repository->refresh($data));
+
+ /** @var PublicLinkListData $resultData */
+ $resultData = self::$repository->getById(1)->getData();
+
+ $this->assertEquals($data->getHash(), $resultData->getHash());
+ $this->assertEquals($data->getDateExpire(), $resultData->getDateExpire());
+ $this->assertEquals($data->getMaxCountViews(), $resultData->getMaxCountViews());
+ $this->assertEquals($data->getData(), $resultData->getData());
+
+ $this->expectException(ConstraintException::class);
+
+ $data->setId(3);
+
+ $this->assertEquals(0, self::$repository->refresh($data));
+
+ $data->setId(1);
+ $data->setHash(null);
+
+ $this->assertEquals(0, self::$repository->refresh($data));
+ }
+
+ /**
+ * @throws ConstraintException
+ * @throws \SP\Core\Exceptions\QueryException
+ */
+ public function testGetByIdBatch()
+ {
+ $result = self::$repository->getByIdBatch([1, 2, 3]);
+ /** @var PublicLinkListData[] $data */
+ $data = $result->getDataAsArray();
+
+ $this->assertEquals(2, $result->getNumRows());
+
+ $this->assertInstanceOf(PublicLinkListData::class, $data[0]);
+ $this->assertEquals(1, $data[0]->getId());
+
+ $this->assertInstanceOf(PublicLinkListData::class, $data[1]);
+ $this->assertEquals(2, $data[1]->getId());
+ $this->assertEquals(1, $data[1]->getItemId());
+ $this->assertEquals(pack('H*', '313065363937306666653833623531393234356635333433333732626366663433376461623565356134386238326131653238636131356235346635'), $data[1]->getHash());
+ $this->assertNotEmpty($data[1]->getData());
+ $this->assertEquals(1, $data[1]->getUserId());
+ $this->assertEquals(1, $data[1]->getTypeId());
+ $this->assertEquals(0, $data[1]->isNotify());
+ $this->assertEquals(1529228863, $data[1]->getDateAdd());
+ $this->assertEquals(1529229463, $data[1]->getDateExpire());
+ $this->assertEquals(0, $data[1]->getDateUpdate());
+ $this->assertEquals(0, $data[1]->getCountViews());
+ $this->assertEquals(3, $data[1]->getMaxCountViews());
+ $this->assertEquals(0, $data[1]->getTotalCountViews());
+ $this->assertNull($data[1]->getUseInfo());
+ $this->assertEquals('Google', $data[1]->getAccountName());
+ $this->assertEquals('admin', $data[1]->getUserLogin());
+
+ $this->assertEquals(0, self::$repository->getByIdBatch([])->getNumRows());
+ }
+
+ /**
+ * @throws ConstraintException
+ * @throws \SP\Core\Exceptions\QueryException
+ */
+ public function testGetAll()
+ {
+ $result = self::$repository->getAll();
+ /** @var PublicLinkListData[] $data */
+ $data = $result->getDataAsArray();
+
+ $this->assertEquals(2, $result->getNumRows());
+
+ $this->assertInstanceOf(PublicLinkListData::class, $data[0]);
+ $this->assertEquals(1, $data[0]->getId());
+
+ $this->assertInstanceOf(PublicLinkListData::class, $data[1]);
+ $this->assertEquals(2, $data[1]->getId());
+ $this->assertEquals(1, $data[1]->getItemId());
+ $this->assertEquals(pack('H*', '313065363937306666653833623531393234356635333433333732626366663433376461623565356134386238326131653238636131356235346635'), $data[1]->getHash());
+ $this->assertNotEmpty($data[1]->getData());
+ $this->assertEquals(1, $data[1]->getUserId());
+ $this->assertEquals(1, $data[1]->getTypeId());
+ $this->assertEquals(0, $data[1]->isNotify());
+ $this->assertEquals(1529228863, $data[1]->getDateAdd());
+ $this->assertEquals(1529229463, $data[1]->getDateExpire());
+ $this->assertEquals(0, $data[1]->getDateUpdate());
+ $this->assertEquals(0, $data[1]->getCountViews());
+ $this->assertEquals(3, $data[1]->getMaxCountViews());
+ $this->assertEquals(0, $data[1]->getTotalCountViews());
+ $this->assertNull($data[1]->getUseInfo());
+ $this->assertEquals('Google', $data[1]->getAccountName());
+ $this->assertEquals('admin', $data[1]->getUserLogin());
+ }
+
+ /**
+ * @throws ConstraintException
+ * @throws \Defuse\Crypto\Exception\EnvironmentIsBrokenException
+ * @throws \SP\Core\Exceptions\QueryException
+ * @throws \SP\Core\Exceptions\SPException
+ */
+ public function testUpdate()
+ {
+ $data = new PublicLinkData();
+ $data->setId(1);
+ $data->setItemId(2);
+ $data->setHash(Util::generateRandomBytes());
+ $data->setData('data');
+ $data->setUserId(2);
+ $data->setTypeId(1);
+ $data->setNotify(0);
+ $data->setDateExpire(time() + 3600);
+ $data->setDateAdd(time());
+ $data->setMaxCountViews(6);
+
+ $this->assertEquals(1, self::$repository->update($data));
+
+ /** @var PublicLinkListData $resultData */
+ $resultData = self::$repository->getById(1)->getData();
+
+ $this->assertEquals(1, $resultData->getId());
+ $this->assertEquals($data->getItemId(), $resultData->getItemId());
+ $this->assertEquals($data->getHash(), $resultData->getHash());
+ $this->assertEquals($data->getData(), $resultData->getData());
+ $this->assertEquals($data->getUserId(), $resultData->getUserId());
+ $this->assertEquals($data->getTypeId(), $resultData->getTypeId());
+ $this->assertEquals($data->isNotify(), $resultData->isNotify());
+ $this->assertEquals($data->getDateExpire(), $resultData->getDateExpire());
+ $this->assertEquals($data->getDateAdd(), $resultData->getDateAdd());
+ $this->assertEquals($data->getMaxCountViews(), $resultData->getMaxCountViews());
+
+ $this->expectException(ConstraintException::class);
+
+ $data->setItemId(1);
+
+ self::$repository->update($data);
+ }
+}
diff --git a/tests/Repositories/TagRepositoryTest.php b/tests/Repositories/TagRepositoryTest.php
index 2993ee24..b8021989 100644
--- a/tests/Repositories/TagRepositoryTest.php
+++ b/tests/Repositories/TagRepositoryTest.php
@@ -45,7 +45,7 @@ class TagRepositoryTest extends DatabaseTestCase
/**
* @var TagRepository
*/
- private static $tagRepository;
+ private static $repository;
/**
* @throws \DI\NotFoundException
@@ -60,7 +60,7 @@ class TagRepositoryTest extends DatabaseTestCase
self::$databaseConnectionData = $dic->get(DatabaseConnectionData::class);
// Inicializar el repositorio
- self::$tagRepository = $dic->get(TagRepository::class);
+ self::$repository = $dic->get(TagRepository::class);
}
/**
@@ -75,7 +75,7 @@ class TagRepositoryTest extends DatabaseTestCase
$itemSearchData->setLimitCount(10);
$itemSearchData->setSeachString('www');
- $result = self::$tagRepository->search($itemSearchData);
+ $result = self::$repository->search($itemSearchData);
$data = $result->getDataAsArray();
$this->assertEquals(1, $result->getNumRows());
@@ -87,7 +87,7 @@ class TagRepositoryTest extends DatabaseTestCase
$itemSearchData->setLimitCount(10);
$itemSearchData->setSeachString('prueba');
- $result = self::$tagRepository->search($itemSearchData);
+ $result = self::$repository->search($itemSearchData);
$this->assertEquals(0, $result->getNumRows());
$this->assertCount(0, $result->getDataAsArray());
@@ -95,30 +95,36 @@ class TagRepositoryTest extends DatabaseTestCase
/**
* Comprobar los resultados de obtener las etiquetas por Id
+ *
+ * @throws QueryException
+ * @throws \SP\Core\Exceptions\ConstraintException
*/
public function testGetById()
{
- $tag = self::$tagRepository->getById(10);
+ $tag = self::$repository->getById(10);
$this->assertCount(0, $tag);
- $tag = self::$tagRepository->getById(1);
+ $tag = self::$repository->getById(1);
$this->assertEquals('www', $tag->getName());
- $tag = self::$tagRepository->getById(2);
+ $tag = self::$repository->getById(2);
$this->assertEquals('windows', $tag->getName());
}
/**
* Comprobar la obtención de todas las etiquetas
+ *
+ * @throws QueryException
+ * @throws \SP\Core\Exceptions\ConstraintException
*/
public function testGetAll()
{
$count = $this->conn->getRowCount('Tag');
- $results = self::$tagRepository->getAll();
+ $results = self::$repository->getAll();
$this->assertCount($count, $results);
@@ -135,7 +141,8 @@ class TagRepositoryTest extends DatabaseTestCase
/**
* Comprobar la actualización de etiquetas
*
- * @covers \SP\Repositories\Category\CategoryRepository::checkDuplicatedOnUpdate()
+ * @depends testGetById
+ * @covers \SP\Repositories\Category\CategoryRepository::checkDuplicatedOnUpdate()
* @throws \SP\Core\Exceptions\ConstraintException
* @throws \SP\Core\Exceptions\QueryException
* @throws \SP\Core\Exceptions\SPException
@@ -146,9 +153,9 @@ class TagRepositoryTest extends DatabaseTestCase
$tagData->id = 1;
$tagData->name = 'Servidor';
- self::$tagRepository->update($tagData);
+ self::$repository->update($tagData);
- $category = self::$tagRepository->getById(1);
+ $category = self::$repository->getById(1);
$this->assertEquals($category->getName(), $tagData->name);
@@ -159,7 +166,7 @@ class TagRepositoryTest extends DatabaseTestCase
$this->expectException(DuplicatedItemException::class);
- self::$tagRepository->update($tagData);
+ self::$repository->update($tagData);
}
/**
@@ -169,8 +176,8 @@ class TagRepositoryTest extends DatabaseTestCase
*/
public function testDeleteByIdBatch()
{
- $this->assertEquals(0, self::$tagRepository->deleteByIdBatch([4]));
- $this->assertEquals(3, self::$tagRepository->deleteByIdBatch([1, 2, 3]));
+ $this->assertEquals(0, self::$repository->deleteByIdBatch([4]));
+ $this->assertEquals(3, self::$repository->deleteByIdBatch([1, 2, 3]));
$this->assertEquals(0, $this->conn->getRowCount('Tag'));
}
@@ -178,7 +185,8 @@ class TagRepositoryTest extends DatabaseTestCase
/**
* Comprobar la creación de etiquetas
*
- * @covers \SP\Repositories\Category\CategoryRepository::checkDuplicatedOnAdd()
+ * @depends testGetById
+ * @covers \SP\Repositories\Category\CategoryRepository::checkDuplicatedOnAdd()
* @throws DuplicatedItemException
* @throws \SP\Core\Exceptions\SPException
*/
@@ -189,10 +197,10 @@ class TagRepositoryTest extends DatabaseTestCase
$tagData = new TagData();
$tagData->name = 'Core';
- $id = self::$tagRepository->create($tagData);
+ $id = self::$repository->create($tagData);
// Comprobar que el Id devuelto corresponde con la etiqueta creada
- $tag = self::$tagRepository->getById($id);
+ $tag = self::$repository->getById($id);
$this->assertEquals($tagData->name, $tag->getName());
@@ -211,14 +219,14 @@ class TagRepositoryTest extends DatabaseTestCase
{
$countBefore = $this->conn->getRowCount('Tag');
- $this->assertEquals(1, self::$tagRepository->delete(3));
+ $this->assertEquals(1, self::$repository->delete(3));
$countAfter = $this->conn->getRowCount('Tag');
$this->assertEquals($countBefore - 1, $countAfter);
// Comprobar la eliminación de etiquetas usadas
- $this->assertEquals(1, self::$tagRepository->delete(1));
+ $this->assertEquals(1, self::$repository->delete(1));
}
/**
@@ -229,9 +237,9 @@ class TagRepositoryTest extends DatabaseTestCase
*/
public function testGetByIdBatch()
{
- $this->assertCount(3, self::$tagRepository->getByIdBatch([1, 2, 3]));
- $this->assertCount(3, self::$tagRepository->getByIdBatch([1, 2, 3, 4, 5]));
- $this->assertCount(0, self::$tagRepository->getByIdBatch([]));
+ $this->assertCount(3, self::$repository->getByIdBatch([1, 2, 3]));
+ $this->assertCount(3, self::$repository->getByIdBatch([1, 2, 3, 4, 5]));
+ $this->assertCount(0, self::$repository->getByIdBatch([]));
}
/**
@@ -240,6 +248,6 @@ class TagRepositoryTest extends DatabaseTestCase
*/
public function testCheckInUse()
{
- $this->assertTrue(self::$tagRepository->checkInUse(1));
+ $this->assertTrue(self::$repository->checkInUse(1));
}
}
diff --git a/tests/Repositories/TrackRepositoryTest.php b/tests/Repositories/TrackRepositoryTest.php
new file mode 100644
index 00000000..756f2f77
--- /dev/null
+++ b/tests/Repositories/TrackRepositoryTest.php
@@ -0,0 +1,187 @@
+.
+ */
+
+namespace SP\Tests\Repositories;
+
+use DI\DependencyException;
+use PHPUnit\DbUnit\DataSet\IDataSet;
+use SP\DataModel\TrackData;
+use SP\Repositories\Track\TrackRepository;
+use SP\Repositories\Track\TrackRequest;
+use SP\Storage\Database\DatabaseConnectionData;
+use SP\Tests\DatabaseTestCase;
+use function SP\Tests\setupContext;
+
+/**
+ * Class TrackRepositoryTest
+ *
+ * @package SP\Tests\Repositories
+ */
+class TrackRepositoryTest extends DatabaseTestCase
+{
+ /**
+ * @var TrackRepository
+ */
+ private static $repository;
+
+ /**
+ * @throws DependencyException
+ * @throws \DI\NotFoundException
+ * @throws \SP\Core\Context\ContextException
+ */
+ public static function setUpBeforeClass()
+ {
+ $dic = setupContext();
+
+ // Datos de conexión a la BBDD
+ self::$databaseConnectionData = $dic->get(DatabaseConnectionData::class);
+
+ // Inicializar el repositorio
+ self::$repository = $dic->get(TrackRepository::class);
+ }
+
+ /**
+ * @throws \SP\Core\Exceptions\ConstraintException
+ * @throws \SP\Core\Exceptions\QueryException
+ */
+ public function testDelete()
+ {
+ $this->assertEquals(1, self::$repository->delete(1));
+
+ $this->assertEquals(5, $this->conn->getRowCount('Track'));
+
+ $this->assertEquals(0, self::$repository->delete(10));
+ }
+
+ /**
+ * @throws \SP\Core\Exceptions\ConstraintException
+ * @throws \SP\Core\Exceptions\QueryException
+ */
+ public function testGetById()
+ {
+ $result = self::$repository->getById(1);
+ /** @var TrackData $data */
+ $data = $result->getData();
+
+ $this->assertEquals(1, $result->getNumRows());
+ $this->assertInstanceOf(TrackData::class, $data);
+ $this->assertEquals(1, $data->getId());
+ $this->assertEquals(0, $data->getUserId());
+ $this->assertEquals('1529145183', $data->getTime());
+ $this->assertEquals('login', $data->getSource());
+ $this->assertEquals('172.22.0.1', $data->getIpv4());
+
+ $this->assertEquals(0, self::$repository->getById(10)->getNumRows());
+ }
+
+ /**
+ * @depends testGetById
+ * @throws \SP\Core\Exceptions\ConstraintException
+ * @throws \SP\Core\Exceptions\QueryException
+ * @throws \SP\Core\Exceptions\InvalidArgumentException
+ */
+ public function testAdd()
+ {
+ $data = new TrackRequest();
+ $data->setTrackIp('192.168.0.1');
+ $data->userId = 1;
+ $data->time = time();
+ $data->source = __METHOD__;
+
+ $this->assertEquals(7, self::$repository->add($data));
+
+ /** @var TrackData $resultData */
+ $resultData = self::$repository->getById(7)->getData();
+
+ $this->assertEquals(7, $resultData->getId());
+ $this->assertEquals($data->userId, $resultData->getUserId());
+ $this->assertEquals($data->time, $resultData->getTime());
+ $this->assertEquals($data->source, $resultData->getSource());
+ $this->assertEquals('192.168.0.1', $resultData->getIpv4());
+ }
+
+
+ /**
+ * @throws \SP\Core\Exceptions\ConstraintException
+ * @throws \SP\Core\Exceptions\QueryException
+ */
+ public function testGetAll()
+ {
+ $result = self::$repository->getAll();
+ /** @var TrackData[] $data */
+ $data = $result->getDataAsArray();
+
+ $this->assertEquals(6, $result->getNumRows());
+ $this->assertCount(6, $data);
+ $this->assertInstanceOf(TrackData::class, $data[0]);
+ $this->assertEquals(1, $data[0]->getId());
+ $this->assertEquals(0, $data[0]->getUserId());
+ $this->assertEquals('1529145183', $data[0]->getTime());
+ $this->assertEquals('login', $data[0]->getSource());
+ $this->assertEquals('172.22.0.1', $data[0]->getIpv4());
+ $this->assertEquals('', $data[0]->getIpv6());
+ }
+
+ /**
+ * @throws \SP\Core\Exceptions\ConstraintException
+ * @throws \SP\Core\Exceptions\InvalidArgumentException
+ * @throws \SP\Core\Exceptions\QueryException
+ */
+ public function testGetTracksForClientFromTime()
+ {
+ $data = new TrackRequest();
+ $data->setTrackIp('172.22.0.1');
+ $data->time = 1529272367;
+ $data->source = 'login';
+
+ $result = self::$repository->getTracksForClientFromTime($data);
+ /** @var TrackData[] $resultData */
+ $resultData = $result->getDataAsArray();
+
+ $this->assertEquals(3, $result->getNumRows());
+ $this->assertCount(3, $resultData);
+ $this->assertInstanceOf(TrackData::class, $resultData[0]);
+ $this->assertEquals(4, $resultData[0]->getId());
+ $this->assertInstanceOf(TrackData::class, $resultData[1]);
+ $this->assertEquals(5, $resultData[1]->getId());
+ $this->assertInstanceOf(TrackData::class, $resultData[2]);
+ $this->assertEquals(6, $resultData[2]->getId());
+
+ $data->time = time();
+
+ $result = self::$repository->getTracksForClientFromTime($data);
+
+ $this->assertEquals(0, $result->getNumRows());
+ }
+
+ /**
+ * Returns the test dataset.
+ *
+ * @return IDataSet
+ */
+ protected function getDataSet()
+ {
+ return $this->createMySQLXMLDataSet(RESOURCE_DIR . DIRECTORY_SEPARATOR . 'datasets' . DIRECTORY_SEPARATOR . 'syspass_track.xml');
+ }
+}
diff --git a/tests/Repositories/UserGroupRepositoryTest.php b/tests/Repositories/UserGroupRepositoryTest.php
index c304baac..da78bd29 100644
--- a/tests/Repositories/UserGroupRepositoryTest.php
+++ b/tests/Repositories/UserGroupRepositoryTest.php
@@ -47,7 +47,7 @@ class UserGroupRepositoryTestCase extends DatabaseTestCase
/**
* @var UserGroupRepository
*/
- private static $userGroupRepository;
+ private static $repository;
/**
* @throws DependencyException
@@ -62,17 +62,20 @@ class UserGroupRepositoryTestCase extends DatabaseTestCase
self::$databaseConnectionData = $dic->get(DatabaseConnectionData::class);
// Inicializar el repositorio
- self::$userGroupRepository = $dic->get(UserGroupRepository::class);
+ self::$repository = $dic->get(UserGroupRepository::class);
}
/**
* Comprobar la obtención de uso del grupo por usuarios
+ *
+ * @throws ConstraintException
+ * @throws QueryException
*/
public function testGetUsageByUsers()
{
- $this->assertCount(2, self::$userGroupRepository->getUsageByUsers(1));
- $this->assertCount(5, self::$userGroupRepository->getUsageByUsers(2));
- $this->assertCount(0, self::$userGroupRepository->getUsageByUsers(3));
+ $this->assertCount(2, self::$repository->getUsageByUsers(1));
+ $this->assertCount(5, self::$repository->getUsageByUsers(2));
+ $this->assertCount(0, self::$repository->getUsageByUsers(3));
}
/**
@@ -83,9 +86,9 @@ class UserGroupRepositoryTestCase extends DatabaseTestCase
*/
public function testCheckInUse()
{
- $this->assertTrue(self::$userGroupRepository->checkInUse(1));
- $this->assertTrue(self::$userGroupRepository->checkInUse(2));
- $this->assertFalse(self::$userGroupRepository->checkInUse(5));
+ $this->assertTrue(self::$repository->checkInUse(1));
+ $this->assertTrue(self::$repository->checkInUse(2));
+ $this->assertFalse(self::$repository->checkInUse(5));
}
/**
@@ -96,13 +99,13 @@ class UserGroupRepositoryTestCase extends DatabaseTestCase
*/
public function testGetByName()
{
- $group = self::$userGroupRepository->getByName('Demo');
+ $group = self::$repository->getByName('Demo');
$this->assertInstanceOf(UserGroupData::class, $group);
$this->assertEquals('Demo', $group->getName());
$this->assertEmpty($group->getDescription());
- $group = self::$userGroupRepository->getByName('Prueba');
+ $group = self::$repository->getByName('Prueba');
$this->assertCount(0, $group);
}
@@ -117,7 +120,7 @@ class UserGroupRepositoryTestCase extends DatabaseTestCase
// Se lanza excepción en caso de restricción relacional
$this->expectException(ConstraintException::class);
- $result = self::$userGroupRepository->deleteByIdBatch([1, 2, 3]);
+ $result = self::$repository->deleteByIdBatch([1, 2, 3]);
$this->assertEquals(1, $result);
}
@@ -137,28 +140,31 @@ class UserGroupRepositoryTestCase extends DatabaseTestCase
$userGroupData->setName('Grupo demo');
$userGroupData->setDescription('Grupo para usuarios demo');
- $this->assertEquals(1, self::$userGroupRepository->update($userGroupData));
+ $this->assertEquals(1, self::$repository->update($userGroupData));
$this->expectException(DuplicatedItemException::class);
$userGroupData->setName('Admins');
- self::$userGroupRepository->update($userGroupData);
+ self::$repository->update($userGroupData);
}
/**
* Comprobar la obtención de grupos por Id
+ *
+ * @throws ConstraintException
+ * @throws QueryException
*/
public function testGetById()
{
- $group = self::$userGroupRepository->getById(2);
+ $group = self::$repository->getById(2);
$this->assertInstanceOf(UserGroupData::class, $group);
$this->assertEquals('Demo', $group->getName());
$this->assertEmpty($group->getDescription());
- $group = self::$userGroupRepository->getById(4);
+ $group = self::$repository->getById(4);
$this->assertCount(0, $group);
}
@@ -176,21 +182,24 @@ class UserGroupRepositoryTestCase extends DatabaseTestCase
$userGroupData->setName('Grupo Prueba');
$userGroupData->setDescription('Grupo de prueba para usuarios');
- $this->assertEquals(4, self::$userGroupRepository->create($userGroupData));
+ $this->assertEquals(4, self::$repository->create($userGroupData));
$this->expectException(DuplicatedItemException::class);
$userGroupData->setName('Admins');
- self::$userGroupRepository->create($userGroupData);
+ self::$repository->create($userGroupData);
}
/**
* Comprobar la obtención de grupos
+ *
+ * @throws ConstraintException
+ * @throws QueryException
*/
public function testGetAll()
{
- $groups = self::$userGroupRepository->getAll();
+ $groups = self::$repository->getAll();
$this->assertCount(3, $groups);
$this->assertInstanceOf(UserGroupData::class, $groups[0]);
@@ -206,32 +215,38 @@ class UserGroupRepositoryTestCase extends DatabaseTestCase
*/
public function testDelete()
{
- $result = self::$userGroupRepository->delete(3);
+ $result = self::$repository->delete(3);
$this->assertEquals(1, $result);
$this->assertEquals(2, $this->conn->getRowCount('UserGroup'));
$this->expectException(ConstraintException::class);
- self::$userGroupRepository->delete(1);
- self::$userGroupRepository->delete(2);
+ self::$repository->delete(1);
+ self::$repository->delete(2);
}
/**
* Comprobar la obtención de uso de grupos
+ *
+ * @throws ConstraintException
+ * @throws QueryException
*/
public function testGetUsage()
{
- $this->assertCount(7, self::$userGroupRepository->getUsage(2));
- $this->assertCount(0, self::$userGroupRepository->getUsage(3));
+ $this->assertCount(7, self::$repository->getUsage(2));
+ $this->assertCount(0, self::$repository->getUsage(3));
}
/**
* Comprobar la obtención de grupos en lote
+ *
+ * @throws ConstraintException
+ * @throws QueryException
*/
public function testGetByIdBatch()
{
- $groups = self::$userGroupRepository->getByIdBatch([1, 2, 5]);
+ $groups = self::$repository->getByIdBatch([1, 2, 5]);
$this->assertCount(2, $groups);
$this->assertInstanceOf(UserGroupData::class, $groups[0]);
@@ -252,7 +267,7 @@ class UserGroupRepositoryTestCase extends DatabaseTestCase
$itemSearchData->setLimitCount(10);
$itemSearchData->setSeachString('Demo');
- $result = self::$userGroupRepository->search($itemSearchData);
+ $result = self::$repository->search($itemSearchData);
$data = $result->getDataAsArray();
$this->assertEquals(1, $result->getNumRows());
@@ -265,7 +280,7 @@ class UserGroupRepositoryTestCase extends DatabaseTestCase
$itemSearchData->setLimitCount(10);
$itemSearchData->setSeachString('prueba');
- $result = self::$userGroupRepository->search($itemSearchData);
+ $result = self::$repository->search($itemSearchData);
$this->assertEquals(0, $result->getNumRows());
$this->assertCount(0, $result->getDataAsArray());
diff --git a/tests/Repositories/UserPassRecoverRepositoryTest.php b/tests/Repositories/UserPassRecoverRepositoryTest.php
new file mode 100644
index 00000000..79d6e360
--- /dev/null
+++ b/tests/Repositories/UserPassRecoverRepositoryTest.php
@@ -0,0 +1,124 @@
+.
+ */
+
+namespace SP\Tests\Repositories;
+
+use DI\DependencyException;
+use SP\Core\Exceptions\ConstraintException;
+use SP\Repositories\User\UserPassRecoverRepository;
+use SP\Storage\Database\DatabaseConnectionData;
+use SP\Tests\DatabaseTestCase;
+use SP\Util\Util;
+use function SP\Tests\setupContext;
+
+/**
+ * Class UserPassRecoverRepositoryTest
+ *
+ * @package SP\Tests\Repositories
+ */
+class UserPassRecoverRepositoryTest extends DatabaseTestCase
+{
+ /**
+ * @var UserPassRecoverRepository
+ */
+ private static $repository;
+
+ /**
+ * @throws DependencyException
+ * @throws \DI\NotFoundException
+ * @throws \SP\Core\Context\ContextException
+ */
+ public static function setUpBeforeClass()
+ {
+ $dic = setupContext();
+
+ // Datos de conexión a la BBDD
+ self::$databaseConnectionData = $dic->get(DatabaseConnectionData::class);
+
+ // Inicializar el repositorio
+ self::$repository = $dic->get(UserPassRecoverRepository::class);
+ }
+
+ /**
+ * @throws \Defuse\Crypto\Exception\EnvironmentIsBrokenException
+ * @throws \SP\Core\Exceptions\ConstraintException
+ * @throws \SP\Core\Exceptions\QueryException
+ */
+ public function testAdd()
+ {
+ $this->assertEquals(3, self::$repository->add(2, Util::generateRandomBytes()));
+
+ $this->expectException(ConstraintException::class);
+
+ self::$repository->add(10, Util::generateRandomBytes());
+ }
+
+ /**
+ * @throws ConstraintException
+ * @throws \SP\Core\Exceptions\QueryException
+ */
+ public function testGetAttemptsByUserId()
+ {
+ $this->assertEquals(2, self::$repository->getAttemptsByUserId(2, 1529275206));
+
+ $this->assertEquals(0, self::$repository->getAttemptsByUserId(3, 1529275206));
+
+ $this->assertEquals(0, self::$repository->getAttemptsByUserId(10, 1529275206));
+ }
+
+ /**
+ * @throws ConstraintException
+ * @throws \SP\Core\Exceptions\QueryException
+ * @throws \Defuse\Crypto\Exception\EnvironmentIsBrokenException
+ */
+ public function testGetUserIdForHash()
+ {
+ $result = self::$repository->getUserIdForHash(pack('H*', '3038366162313036303866363838346566383031396134353237333561633066'), 1529275200);
+
+ $this->assertEquals(1, $result->getNumRows());
+ $this->assertEquals(2, $result->getData()->userId);
+
+ $result = self::$repository->getUserIdForHash(Util::generateRandomBytes(), 1529275206);
+
+ $this->assertEquals(0, $result->getNumRows());
+ }
+
+ /**
+ * @throws \SP\Core\Exceptions\SPException
+ */
+ public function testToggleUsedByHash()
+ {
+ $result = self::$repository->toggleUsedByHash(pack('H*', '3038366162313036303866363838346566383031396134353237333561633066'), 1529275200);
+
+ $this->assertEquals(1, $result);
+
+ $result = self::$repository->toggleUsedByHash(pack('H*', '3038366162313036303866363838346566383031396134353237333561633066'), 1529275200);
+
+ $this->assertEquals(0, $result);
+
+ $result = self::$repository->toggleUsedByHash(pack('H*', '3532383335346130663366626661376161626538303831373231653065633631'), 1529275331);
+
+ $this->assertEquals(0, $result);
+ }
+}
diff --git a/tests/Repositories/UserProfileRepositoryTest.php b/tests/Repositories/UserProfileRepositoryTest.php
index 03eff63a..a3229b81 100644
--- a/tests/Repositories/UserProfileRepositoryTest.php
+++ b/tests/Repositories/UserProfileRepositoryTest.php
@@ -48,7 +48,7 @@ class UserProfileRepositoryTest extends DatabaseTestCase
/**
* @var UserProfileRepository
*/
- private static $userProfileRepository;
+ private static $repository;
/**
* @throws DependencyException
@@ -63,7 +63,7 @@ class UserProfileRepositoryTest extends DatabaseTestCase
self::$databaseConnectionData = $dic->get(DatabaseConnectionData::class);
// Inicializar el repositorio
- self::$userProfileRepository = $dic->get(UserProfileRepository::class);
+ self::$repository = $dic->get(UserProfileRepository::class);
}
/**
@@ -74,7 +74,7 @@ class UserProfileRepositoryTest extends DatabaseTestCase
*/
public function testGetAll()
{
- $profiles = self::$userProfileRepository->getAll();
+ $profiles = self::$repository->getAll();
$this->assertCount(3, $profiles);
$this->assertInstanceOf(UserProfileData::class, $profiles[0]);
@@ -95,7 +95,7 @@ class UserProfileRepositoryTest extends DatabaseTestCase
$itemSearchData->setLimitCount(10);
$itemSearchData->setSeachString('Demo');
- $result = self::$userProfileRepository->search($itemSearchData);
+ $result = self::$repository->search($itemSearchData);
$data = $result->getDataAsArray();
$this->assertEquals(1, $result->getNumRows());
@@ -107,7 +107,7 @@ class UserProfileRepositoryTest extends DatabaseTestCase
// Nueva búsqueda de perfil no existente
$itemSearchData->setSeachString('prueba');
- $result = self::$userProfileRepository->search($itemSearchData);
+ $result = self::$repository->search($itemSearchData);
$this->assertEquals(0, $result->getNumRows());
$this->assertCount(0, $result->getDataAsArray());
@@ -127,13 +127,13 @@ class UserProfileRepositoryTest extends DatabaseTestCase
$userProfileData->setId(2);
$userProfileData->setName('Perfil Demo');
- $this->assertEquals(1, self::$userProfileRepository->update($userProfileData));
+ $this->assertEquals(1, self::$repository->update($userProfileData));
$this->expectException(DuplicatedItemException::class);
$userProfileData->setName('Admin');
- self::$userProfileRepository->update($userProfileData);
+ self::$repository->update($userProfileData);
}
/**
@@ -144,15 +144,15 @@ class UserProfileRepositoryTest extends DatabaseTestCase
*/
public function testDelete()
{
- $result = self::$userProfileRepository->delete(3);
+ $result = self::$repository->delete(3);
$this->assertEquals(1, $result);
$this->assertEquals(2, $this->conn->getRowCount('UserProfile'));
$this->expectException(ConstraintException::class);
- self::$userProfileRepository->delete(1);
- self::$userProfileRepository->delete(2);
+ self::$repository->delete(1);
+ self::$repository->delete(2);
}
/**
@@ -163,9 +163,9 @@ class UserProfileRepositoryTest extends DatabaseTestCase
*/
public function testCheckInUse()
{
- $this->assertTrue(self::$userProfileRepository->checkInUse(1));
- $this->assertTrue(self::$userProfileRepository->checkInUse(2));
- $this->assertFalse(self::$userProfileRepository->checkInUse(3));
+ $this->assertTrue(self::$repository->checkInUse(1));
+ $this->assertTrue(self::$repository->checkInUse(2));
+ $this->assertFalse(self::$repository->checkInUse(3));
}
/**
@@ -186,7 +186,7 @@ class UserProfileRepositoryTest extends DatabaseTestCase
$userProfileData->setName('Prueba');
$userProfileData->setProfile($profileData);
- $result = self::$userProfileRepository->create($userProfileData);
+ $result = self::$repository->create($userProfileData);
$this->assertEquals(4, $result);
$this->assertEquals(4, $this->conn->getRowCount('UserProfile'));
@@ -195,39 +195,48 @@ class UserProfileRepositoryTest extends DatabaseTestCase
$userProfileData->setName('Demo');
- self::$userProfileRepository->create($userProfileData);
+ self::$repository->create($userProfileData);
}
/**
* Comprobar la obtención de perfiles por Id
+ *
+ * @throws ConstraintException
+ * @throws QueryException
*/
public function testGetById()
{
- $profile = self::$userProfileRepository->getById(2);
+ $profile = self::$repository->getById(2);
$this->assertInstanceOf(UserProfileData::class, $profile);
$this->assertEquals('Demo', $profile->getName());
$this->assertNotEmpty($profile->getProfile());
- $profile = self::$userProfileRepository->getById(4);
+ $profile = self::$repository->getById(4);
$this->assertCount(0, $profile);
}
/**
* Comprobar la obtención de los usuarios asociados a un perfil
+ *
+ * @throws ConstraintException
+ * @throws QueryException
*/
public function testGetUsersForProfile()
{
- $this->assertCount(1, self::$userProfileRepository->getUsersForProfile(2));
- $this->assertCount(0, self::$userProfileRepository->getUsersForProfile(3));
+ $this->assertCount(1, self::$repository->getUsersForProfile(2));
+ $this->assertCount(0, self::$repository->getUsersForProfile(3));
}
/**
* Comprobar la obtención de perfiles en lote
+ *
+ * @throws ConstraintException
+ * @throws QueryException
*/
public function testGetByIdBatch()
{
- $profiles = self::$userProfileRepository->getByIdBatch([1, 2, 5]);
+ $profiles = self::$repository->getByIdBatch([1, 2, 5]);
$this->assertCount(2, $profiles);
$this->assertInstanceOf(UserProfileData::class, $profiles[0]);
@@ -247,7 +256,7 @@ class UserProfileRepositoryTest extends DatabaseTestCase
// Se lanza excepción en caso de restricción relacional
$this->expectException(ConstraintException::class);
- $result = self::$userProfileRepository->deleteByIdBatch([1, 2, 3, 4]);
+ $result = self::$repository->deleteByIdBatch([1, 2, 3, 4]);
$this->assertEquals(1, $result);
}
diff --git a/tests/Repositories/UserRepositoryTest.php b/tests/Repositories/UserRepositoryTest.php
index 03503eea..a284fbdf 100644
--- a/tests/Repositories/UserRepositoryTest.php
+++ b/tests/Repositories/UserRepositoryTest.php
@@ -53,7 +53,7 @@ class UserRepositoryTest extends DatabaseTestCase
/**
* @var UserRepository
*/
- private static $userRepository;
+ private static $repository;
/**
* @throws DependencyException
@@ -68,7 +68,7 @@ class UserRepositoryTest extends DatabaseTestCase
self::$databaseConnectionData = $dic->get(DatabaseConnectionData::class);
// Inicializar el repositorio
- self::$userRepository = $dic->get(UserRepository::class);
+ self::$repository = $dic->get(UserRepository::class);
}
/**
@@ -95,17 +95,17 @@ class UserRepositoryTest extends DatabaseTestCase
$userData->setIsChangePass(1);
$userData->setIsLdap(0);
- $this->assertEquals(1, self::$userRepository->update($userData));
+ $this->assertEquals(1, self::$repository->update($userData));
$userData->setId(3);
$this->expectException(DuplicatedItemException::class);
- self::$userRepository->update($userData);
+ self::$repository->update($userData);
$userData->setId(10);
- $this->assertEquals(0, self::$userRepository->update($userData));
+ $this->assertEquals(0, self::$repository->update($userData));
}
/**
@@ -123,7 +123,7 @@ class UserRepositoryTest extends DatabaseTestCase
$preferences->setResultsAsCards(true);
$preferences->setResultsPerPage(10);
- $this->assertEquals(1, self::$userRepository->updatePreferencesById(2, $preferences));
+ $this->assertEquals(1, self::$repository->updatePreferencesById(2, $preferences));
}
/**
@@ -133,7 +133,7 @@ class UserRepositoryTest extends DatabaseTestCase
*/
public function testGetById()
{
- $user = self::$userRepository->getById(2);
+ $user = self::$repository->getById(2);
$this->assertInstanceOf(UserData::class, $user);
$this->assertEquals('sysPass demo', $user->getName());
@@ -141,7 +141,7 @@ class UserRepositoryTest extends DatabaseTestCase
$this->expectException(NoSuchItemException::class);
- self::$userRepository->getById(5);
+ self::$repository->getById(5);
}
/**
@@ -152,16 +152,19 @@ class UserRepositoryTest extends DatabaseTestCase
*/
public function testCheckExistsByLogin()
{
- $this->assertTrue(self::$userRepository->checkExistsByLogin('demo'));
- $this->assertFalse(self::$userRepository->checkExistsByLogin('usuario'));
+ $this->assertTrue(self::$repository->checkExistsByLogin('demo'));
+ $this->assertFalse(self::$repository->checkExistsByLogin('usuario'));
}
/**
* Comprobar los datos de uso de un usuario
+ *
+ * @throws ConstraintException
+ * @throws QueryException
*/
public function testGetUsageForUser()
{
- $this->assertCount(2, self::$userRepository->getUsageForUser(2));
+ $this->assertCount(2, self::$repository->getUsageForUser(2));
}
/**
@@ -173,11 +176,11 @@ class UserRepositoryTest extends DatabaseTestCase
*/
public function testUpdatePassById()
{
- $result = self::$userRepository->updatePassById(2, new UpdatePassRequest(Hash::hashKey('prueba123')));
+ $result = self::$repository->updatePassById(2, new UpdatePassRequest(Hash::hashKey('prueba123')));
$this->assertEquals(1, $result);
- $result = self::$userRepository->updatePassById(10, new UpdatePassRequest(Hash::hashKey('prueba123')));
+ $result = self::$repository->updatePassById(10, new UpdatePassRequest(Hash::hashKey('prueba123')));
$this->assertEquals(0, $result);
}
@@ -189,7 +192,7 @@ class UserRepositoryTest extends DatabaseTestCase
*/
public function testGetByIdBatch()
{
- $users = self::$userRepository->getByIdBatch([1, 2, 5]);
+ $users = self::$repository->getByIdBatch([1, 2, 5]);
$this->assertCount(2, $users);
$this->assertInstanceOf(UserData::class, $users[0]);
@@ -199,10 +202,13 @@ class UserRepositoryTest extends DatabaseTestCase
/**
* Obtener los datos de todos los usuarios
+ *
+ * @throws ConstraintException
+ * @throws QueryException
*/
public function testGetAll()
{
- $users = self::$userRepository->getAll();
+ $users = self::$repository->getAll();
$this->assertCount(4, $users);
$this->assertInstanceOf(UserData::class, $users[0]);
@@ -224,11 +230,11 @@ class UserRepositoryTest extends DatabaseTestCase
$userData->setIsLdap(1);
$userData->setLogin('demo');
- $this->assertEquals(1, self::$userRepository->updateOnLogin($userData));
+ $this->assertEquals(1, self::$repository->updateOnLogin($userData));
$userData->setLogin('demodedadae');
- $this->assertEquals(0, self::$userRepository->updateOnLogin($userData));
+ $this->assertEquals(0, self::$repository->updateOnLogin($userData));
}
/**
@@ -241,7 +247,7 @@ class UserRepositoryTest extends DatabaseTestCase
{
$this->expectException(ConstraintException::class);
- $result = self::$userRepository->deleteByIdBatch([1, 2, 5]);
+ $result = self::$repository->deleteByIdBatch([1, 2, 5]);
$this->assertCount(2, $result);
}
@@ -253,7 +259,7 @@ class UserRepositoryTest extends DatabaseTestCase
*/
public function testGetByLogin()
{
- $user = self::$userRepository->getByLogin('demo');
+ $user = self::$repository->getByLogin('demo');
$this->assertInstanceOf(UserData::class, $user);
$this->assertEquals('sysPass demo', $user->getName());
@@ -261,7 +267,7 @@ class UserRepositoryTest extends DatabaseTestCase
$this->expectException(NoSuchItemException::class);
- self::$userRepository->getByLogin('prueba');
+ self::$repository->getByLogin('prueba');
}
/**
@@ -272,22 +278,25 @@ class UserRepositoryTest extends DatabaseTestCase
*/
public function testDelete()
{
- $result = self::$userRepository->delete(3);
+ $result = self::$repository->delete(3);
$this->assertEquals(1, $result);
$this->assertEquals(3, $this->conn->getRowCount('User'));
$this->expectException(ConstraintException::class);
- self::$userRepository->delete(1);
+ self::$repository->delete(1);
}
/**
* Comprobar la obtención de los datos de usuarios
+ *
+ * @throws ConstraintException
+ * @throws QueryException
*/
public function testGetBasicInfo()
{
- $users = self::$userRepository->getBasicInfo();
+ $users = self::$repository->getBasicInfo();
$this->assertCount(4, $users);
$this->assertInstanceOf(UserData::class, $users[0]);
@@ -301,9 +310,9 @@ class UserRepositoryTest extends DatabaseTestCase
*/
public function testUpdateLastLoginById()
{
- $this->assertEquals(1, self::$userRepository->updateLastLoginById(2));
+ $this->assertEquals(1, self::$repository->updateLastLoginById(2));
- $this->assertEquals(0, self::$userRepository->updateLastLoginById(10));
+ $this->assertEquals(0, self::$repository->updateLastLoginById(10));
}
/**
@@ -318,7 +327,7 @@ class UserRepositoryTest extends DatabaseTestCase
$itemSearchData->setLimitCount(10);
$itemSearchData->setSeachString('User A');
- $result = self::$userRepository->search($itemSearchData);
+ $result = self::$repository->search($itemSearchData);
$data = $result->getDataAsArray();
$this->assertEquals(1, $result->getNumRows());
@@ -331,13 +340,14 @@ class UserRepositoryTest extends DatabaseTestCase
$itemSearchData->setLimitCount(10);
$itemSearchData->setSeachString('prueba');
- $result = self::$userRepository->search($itemSearchData);
+ $result = self::$repository->search($itemSearchData);
$this->assertEquals(0, $result->getNumRows());
$this->assertCount(0, $result->getDataAsArray());
}
/**
+ * @depends testGetById
* @throws ConstraintException
* @throws QueryException
* @throws \Defuse\Crypto\Exception\CryptoException
@@ -348,9 +358,9 @@ class UserRepositoryTest extends DatabaseTestCase
$key = Crypt::makeSecuredKey('prueba123');
$pass = Crypt::encrypt('prueba_key', $key, 'prueba123');
- $this->assertEquals(1, self::$userRepository->updateMasterPassById(3, $pass, $key));
+ $this->assertEquals(1, self::$repository->updateMasterPassById(3, $pass, $key));
- $user = self::$userRepository->getById(3);
+ $user = self::$repository->getById(3);
$this->assertEquals($pass, $user->getMPass());
$this->assertEquals($key, $user->getMKey());
@@ -378,26 +388,29 @@ class UserRepositoryTest extends DatabaseTestCase
$userData->setIsLdap(0);
$userData->setPass(Hash::hashKey('prueba123'));
- $this->assertEquals(5, self::$userRepository->create($userData));
+ $this->assertEquals(5, self::$repository->create($userData));
$userData->setLogin('demo');
$userData->setEmail('prueba@syspass.org');
$this->expectException(DuplicatedItemException::class);
- self::$userRepository->create($userData);
+ self::$repository->create($userData);
$userData->setLogin('prueba');
$userData->setEmail('demo@syspass.org');
- self::$userRepository->create($userData);
+ self::$repository->create($userData);
}
/**
* Comprobar la obtención de email de usuario por Id de grupo
+ *
+ * @throws ConstraintException
+ * @throws QueryException
*/
public function testGetUserEmailForGroup()
{
- $this->assertCount(4, self::$userRepository->getUserEmailForGroup(2));
+ $this->assertCount(4, self::$repository->getUserEmailForGroup(2));
}
}
diff --git a/tests/res/datasets/syspass.xml b/tests/res/datasets/syspass.xml
index edd23c37..602c5658 100644
--- a/tests/res/datasets/syspass.xml
+++ b/tests/res/datasets/syspass.xml
@@ -452,5 +452,96 @@
2432792431302456425842645839546157334B6146506F38504F7A4C753749412E364D74414A555448633466305A37716A445A664C41416D69795275
+
+
+ 1
+ Prueba
+ Accounts
+
+ Notificación de prueba
+
+ 1529145158
+ 0
+ 2
+ 0
+ 0
+
+
+ 2
+ Global
+ Accounts
+
+ test
+
+ 1529145296
+ 0
+
+ 1
+ 0
+
+
+ 3
+ Admins
+ Accounts
+
+ test
+
+ 1529145313
+ 0
+
+ 0
+ 1
+
+
+
+
+ 1
+ 2
+ 646134633934396166303637386334353130313363626137633133626463396137636135383731383034663137343134306636626161653236346464
+ 4F3A31393A2253505C436F72655C43727970745C5661756C74223A343A7B733A32353A220053505C436F72655C43727970745C5661756C740064617461223B733A313834343A226465663530323030663736353663393931396532663637643566636463656532343532383066333663633332653766353763616632313135653337656231323131616538636664356132373765363663346336336333336462663032393966393639333436336435353661396531653766623366303730386662373165636136323262643234313061333536663562333561376562326632346366316237663161376637306365313831376235353232636134326564323665656536343533663561336337393261366361373633636631336436643530663161356439623636333662303061663838613465363330376361663235653063336665396631313838336331653766643635343434306564356330363339383438333130396237313361663939636263396565353637646136333966383435643463306534316637356261613261613332306330333235653037653337396230356362326237623337333264306434663863623939333464613935383464623039313433316361623734613634323464373135666664303934353436383062303263343933373732353830633165386237323731363739323466366533616331376239656236353963633137363161613538326564363962636263383161396336633933393336656330653739326439303732363238306364633763386162616366353430643131646163383139663932306439323165323664376134366230663861666433373032633166636139316166333163346136376266633266353533626561323334306365326138653166646666303366663232366164613231626636343166616161353230333630663638653938656161393334353732646337353236643261663238646436626262653130616633656635323730343261366461363535663931386565636232643232343737653630303236373234386432336632633131313537323139313132653138313361653961626361356161393764656431343637613732383737393038666337366565613632383438623036653765636135633937303633383261623632616637656364383131396634373832303664316430366664666535303237613961393434633033636164616539363236336463323364353530383331353462326231636464306233306539333033373638663432666536623237653562646362613237333839373261343138346565363039353337386237353266663532313137353863303130616232623733323066353362363034643364626333336630333862303665623637646266323830633734363533373561376666316238386438303639396330303737373434336432633161646261333235633138363165313632646430393932643137376136333935373134663263326431346265633663666437653966613631393830363239363563633531616132646163656534383636616536636233303961386437366439313535633530393963356465376165663336373633356337306235663131383032386561373538613633363137306639613033353136653130383362623961363664303835343764313436356662386439383366666362366664336238633836323465356639626661663738326565346639383661333534383338613931343562346363633138356238346439346263353730356233616336623966333935366561313133646131353739656339623830343432313035333461353865656432383962393038373736336266316362323136343462333438663237306635333434633837383435323664393832386161303262653762613062656335326531366161613639396261306235663434303739653431303738316636633939633935393931626263336331653834643634326132363933313362343564363262316238623766323535333766623365363462306234643461366363336439346131623536313231333539636532393363636139396364303035346232666563653634643865343363656535366432663531623438376361383166623532303034393232643633363239663964366339363236663236383364653330393132343164653865323166323064613366366438613135623261393536626232613234336365373433366563386130356461333337323964333839633938393133376262396234373061396666393935613265666532306361663536356236613538343964343332393938316262353233663737666265323062646261366236336235626339666433366264393236376533643161316535386666366465373765666564303539343332356661393761323432393234323434336431313738656236353165613431373237633161363661623363333432333165626338623562393439313531353365373532323764646265393762623134373030346561623331383936393364363735383466666337643266353761613932333738303535626565633139326336666464363363393934633032643561343866623262636635326132223B733A32343A220053505C436F72655C43727970745C5661756C74006B6579223B733A3531323A226465663130303030646566353032303065306463383737306634316662396337336564386465363435383536373539393337303264313164663439633639333131303032303637653932633439396139363666383339363362343162633966633962303163646130386237336539343338336539643534626362353139633037623530323234663265303236383931356164346337366232626365303833663331353865383464666236313262316336633036323138333338666634383565306364623337636530366430623831613061636139643934643537633331653232323130656365303132386535626263666433616539623133383932326633363236663232373961326332323464666533393331643932356263353162646137623862396639356337663631373565376565653833336436396338333966396639343739643338353433323131326463313032343863356432323463343131356662643066396533666637653661333464646533643933666630643066343036346661306137353762303936343363636161313531666566633832376436306462613364323634626266666162663763303562646465303637386636333430376338356435613739616436623734333462623032343130313232386565303130306564633833653239626132633966376233613136363430653466643966353064223B733A32383A220053505C436F72655C43727970745C5661756C740074696D65536574223B693A313532393232383835313B733A33323A220053505C436F72655C43727970745C5661756C740074696D6555706461746564223B693A303B7D
+ 1
+ 1
+ 1
+ 1529228851
+ 1529229451
+ 0
+ 0
+ 0
+ 3
+
+
+
+ 2
+ 1
+ 313065363937306666653833623531393234356635333433333732626366663433376461623565356134386238326131653238636131356235346635
+ 4F3A31393A2253505C436F72655C43727970745C5661756C74223A343A7B733A32353A220053505C436F72655C43727970745C5661756C740064617461223B733A313833303A22646566353032303065363536643666336138613463383230623337333834323766373665383835386330346431633835363033343933386239386136643464383861383930376537356166653764636432306162333733393539656265326336376463356533353264663131373561333766353437386461373136383464373032616363336330336430363562383235343031646631343734646364373731633339613464326436656265626339313034356464643963646463643533343165383565653665646664313338376630653532336661623930383966386563656339316662656631656337396636396136376565323930353665646636656330323866376236373836643431313231316238336333656565396332653332393537393662323561633439646339383862623139396232336435356534396638653332313637643637613739356264376632383434346533323336643564626131343665346538316264363633376330396663363265623932643763663161356539393330336634396564316533623738353335666165623163356530656566376161646231303837396639633333666339353432393133363837373762376533626437626664663762656339613664393130656135383234653139353639323365643838616261623338313238643966643161336435323532373034623632633961333839366637326565343030643466623663363662313134356561616665663063353939666561653035313335306264396632316333373764633035323837313063613461333563646634396562383438343165633633393638333633346135623730613839623230663334613534326232613837376561623164623530653561386635613735653835633036306466376233316236626533613231373237333835666265633663613465363265336434636236623133643566313063313035343938336366376131616633636633633133383136393730386364353238306336356530356234363462333461633334303163353963663637623232333330373636613737383537333830346131323563363362373830666165303234396661373635353938323665303861663961623931656665366666383231393065336464343732623634306333336430393035633634663063623864626239333362616663653931613963353830393437356434346266323666303739626239623230636564343030343666663838323766376263323132656438633261613839626564323836383235396539383938643735316361383339643363633162313361306630333866396131636666326636386465663031663036323961336133633237313963663739373965323539356162613230376532653564346566636363613466363130323864303461636463643837396637646564626337393330653564616164353963356436386138366336333562343539613833623931353562623639356335376165656531623665346161353363613832633665393438636563656563366333656263363031393361623764303931346337373335393735653362656166633532653337626664383736656231346261326465323834353838656265313566303032373038343338613234383938653230323032323839313139313136666661343733306333633935326531643031326565323038373930326237373065666239356331643134373530323065393537616666653163616635333539326431646439356532346537663865363939376237633164643434346537323561633432383962396266366664336664353262363134363864393134343864366335356431656631306532333565373330643662643562373835353966636665383561366637653161306533333039666532633236343161653836336665386264393663333161373764323937313639323539363437346331613635613437313861626532323064643933633336323831323362646231336165633437333939316437333866623962666139326230393332363439323962383134346362656366616561363465323966616331626261383562386531396466636261376166306331666537653136626566666531313165383038313063663036393665623464633463303863333165646533306362636232306636353337326139303932326139366130363035353566613834623535333430333637623763323166633835646633666366613162336162643338343866633030393236393566313036356537623130383964663564636331626563396462666463356332613135666231643138333332613364373738343533396565626430333965356265326465626534666262326234386532313237343964633835633137383762353335306137303865633439326665396165646661343566303832626465356166386331636130373531613637393361643332623864643931323035643934666366646136616532343538383466223B733A32343A220053505C436F72655C43727970745C5661756C74006B6579223B733A3531323A226465663130303030646566353032303066316562333864316662623534643861336632653430373034666465656535623262633766656264303238653164383331363131356365616131363938653235386131633765646336623165633536323236663732666239353131623463656137333032633036323738643330613032333762303664353965303534363761333737386364346462373865343066383862613230366666613964643765666638386261636230353939373136343230653763653362323564396433386132306262646161366237623466313362623761653136313564323534656438333463343664623734393464303864353232666632373064336635363462663661636239343231633936346362396536616337336439623664396133653561383234323236653638633561336630653330373738616366316332313561326264663635616538303636616666623133396234383234373635356662373331323164303761366431373631306363626433396331373334626563303938383836616430336165356530613734346363353638313864643836636261306366326136656439376439346665333336386237393533333432636663356135366536333439616663633064323962666362623265636136613038656437663866643466633735313630313634643062646238373062633763223B733A32383A220053505C436F72655C43727970745C5661756C740074696D65536574223B693A313532393232383836323B733A33323A220053505C436F72655C43727970745C5661756C740074696D6555706461746564223B693A303B7D
+ 1
+ 1
+ 0
+ 1529228863
+ 1529229463
+ 0
+ 0
+ 0
+ 3
+
+
+
+
+
+ 1
+ 2
+ 3038366162313036303866363838346566383031396134353237333561633066
+ 1529275206
+ 0
+
+
+ 2
+ 2
+ 3532383335346130663366626661376161626538303831373231653065633631
+ 1529275330
+ 0
+
+
diff --git a/tests/res/datasets/syspass_plugin.xml b/tests/res/datasets/syspass_plugin.xml
new file mode 100644
index 00000000..1e57c34f
--- /dev/null
+++ b/tests/res/datasets/syspass_plugin.xml
@@ -0,0 +1,28 @@
+
+
+
+
+
+ 1
+ Authenticator
+
+ 0
+ 1
+
+
+ 2
+ XML Exporter
+ data
+ 1
+ 1
+
+
+ 3
+ DokuWiki
+
+ 1
+ 0
+
+
+
+
diff --git a/tests/res/datasets/syspass_track.xml b/tests/res/datasets/syspass_track.xml
new file mode 100644
index 00000000..2568c75c
--- /dev/null
+++ b/tests/res/datasets/syspass_track.xml
@@ -0,0 +1,55 @@
+
+
+
+
+
+ 1
+
+ login
+ 1529145183
+ AC160001
+
+
+
+ 2
+
+ login
+ 1529145189
+ AC160001
+
+
+
+ 3
+
+ login
+ 1529145194
+ AC160001
+
+
+
+ 4
+
+ login
+ 1529272367
+ AC160001
+
+
+
+ 5
+
+ login
+ 1529272372
+ AC160001
+
+
+
+ 6
+
+ login
+ 1529272376
+ AC160001
+
+
+
+
+