Add tests for activity classes

Signed-off-by: Julius Härtl <jus@bitgrid.net>
This commit is contained in:
Julius Härtl
2018-09-06 13:19:54 +02:00
parent 4ba47045b2
commit 0cc4fffd08
8 changed files with 385 additions and 51 deletions

View File

@@ -117,40 +117,6 @@ class ActivityManager {
$this->userId = $userId;
}
/**
* @param $objectType
* @param $entity
* @return null|\OCA\Deck\Db\RelationalEntity|\OCP\AppFramework\Db\Entity
* @throws \OCP\AppFramework\Db\DoesNotExistException
* @throws \OCP\AppFramework\Db\MultipleObjectsReturnedException
*/
protected function findObjectForEntity($objectType, $entity) {
$className = \get_class($entity);
$objectId = null;
switch ($className) {
case Board::class:
case Card::class:
$objectId = $entity->getId();
break;
case Attachment::class:
case Label::class:
case AssignedUsers::class:
$objectId = $entity->getCardId();
break;
case Stack::class:
$objectId = $entity->getBoardId();
}
if ($objectType === self::DECK_OBJECT_CARD) {
return $this->cardMapper->find($objectId);
}
if ($objectType === self::DECK_OBJECT_BOARD) {
return $this->boardMapper->find($objectId);
}
return null;
}
/**
* @param $subjectIdentifier
* @param array $subjectParams
@@ -321,7 +287,7 @@ class ActivityManager {
* @return IEvent
* @throws \Exception
*/
public function createEvent($objectType, $entity, $subject, $additionalParams = []) {
private function createEvent($objectType, $entity, $subject, $additionalParams = []) {
try {
$object = $this->findObjectForEntity($objectType, $entity);
} catch (DoesNotExistException $e) {
@@ -405,7 +371,7 @@ class ActivityManager {
*
* @param IEvent $event
*/
public function sendToUsers(IEvent $event) {
private function sendToUsers(IEvent $event) {
switch ($event->getObjectType()) {
case self::DECK_OBJECT_BOARD:
$mapper = $this->boardMapper;
@@ -423,7 +389,41 @@ class ActivityManager {
}
}
public function findDetailsForStack($stackId) {
/**
* @param $objectType
* @param $entity
* @return null|\OCA\Deck\Db\RelationalEntity|\OCP\AppFramework\Db\Entity
* @throws \OCP\AppFramework\Db\DoesNotExistException
* @throws \OCP\AppFramework\Db\MultipleObjectsReturnedException
*/
private function findObjectForEntity($objectType, $entity) {
$className = \get_class($entity);
$objectId = null;
switch ($className) {
case Board::class:
case Card::class:
$objectId = $entity->getId();
break;
case Attachment::class:
case Label::class:
case AssignedUsers::class:
$objectId = $entity->getCardId();
break;
case Stack::class:
$objectId = $entity->getBoardId();
}
if ($objectType === self::DECK_OBJECT_CARD) {
return $this->cardMapper->find($objectId);
}
if ($objectType === self::DECK_OBJECT_BOARD) {
return $this->boardMapper->find($objectId);
}
return null;
}
private function findDetailsForStack($stackId) {
$stack = $this->stackMapper->find($stackId);
$board = $this->boardMapper->find($stack->getBoardId());
return [
@@ -432,7 +432,7 @@ class ActivityManager {
];
}
public function findDetailsForCard($cardId) {
private function findDetailsForCard($cardId) {
$card = $this->cardMapper->find($cardId);
$stack = $this->stackMapper->find($card->getStackId());
$board = $this->boardMapper->find($stack->getBoardId());
@@ -443,7 +443,7 @@ class ActivityManager {
];
}
public function findDetailsForAttachment($attachmentId) {
private function findDetailsForAttachment($attachmentId) {
$attachment = $this->attachmentMapper->find($attachmentId);
$data = $this->findDetailsForCard($attachment->getCardId());
return array_merge($data, ['attachment' => $attachment]);

View File

@@ -48,11 +48,19 @@ class ChangeSet {
}
public function setBefore($before) {
$this->before = clone $before;
if (is_object($before)) {
$this->before = clone $before;
} else {
$this->before = $before;
}
}
public function setAfter($after) {
$this->after = clone $after;
if (is_object($after)) {
$this->after = clone $after;
} else {
$this->after = $after;
}
}
public function getBefore() {

View File

@@ -60,24 +60,24 @@ class DeckProvider implements IProvider {
throw new \InvalidArgumentException();
}
$event->setIcon(\OC::$server->getURLGenerator()->imagePath('deck', 'deck-dark.svg'));
$event->setIcon($this->urlGenerator->imagePath('deck', 'deck-dark.svg'));
if (strpos($event->getSubject(), '_update') !== false) {
$event->setIcon(\OC::$server->getURLGenerator()->imagePath('files', 'change.svg'));
$event->setIcon($this->urlGenerator->imagePath('files', 'change.svg'));
}
if (strpos($event->getSubject(), '_create') !== false) {
$event->setIcon(\OC::$server->getURLGenerator()->imagePath('files', 'add-color.svg'));
$event->setIcon($this->urlGenerator->imagePath('files', 'add-color.svg'));
}
if (strpos($event->getSubject(), '_delete') !== false) {
$event->setIcon(\OC::$server->getURLGenerator()->imagePath('files', 'delete-color.svg'));
$event->setIcon($this->urlGenerator->imagePath('files', 'delete-color.svg'));
}
if (strpos($event->getSubject(), 'archive') !== false) {
$event->setIcon(\OC::$server->getURLGenerator()->imagePath('deck', 'archive.svg'));
$event->setIcon($this->urlGenerator->imagePath('deck', 'archive.svg'));
}
if (strpos($event->getSubject(), '_restore') !== false) {
$event->setIcon(\OC::$server->getURLGenerator()->imagePath('core', 'actions/history.svg'));
$event->setIcon($this->urlGenerator->imagePath('core', 'actions/history.svg'));
}
if (strpos($event->getSubject(), 'attachment_') !== false) {
$event->setIcon(\OC::$server->getURLGenerator()->imagePath('core', 'places/files.svg'));
$event->setIcon($this->urlGenerator->imagePath('core', 'places/files.svg'));
}

View File

@@ -24,15 +24,19 @@
namespace OCA\Deck\Activity;
use OCP\IL10N;
use OCP\IURLGenerator;
class Filter implements \OCP\Activity\IFilter {
private $l10n;
private $urlGenerator;
public function __construct(
IL10N $l10n
IL10N $l10n,
IURLGenerator $urlGenerator
) {
$this->l10n = $l10n;
$this->urlGenerator = $urlGenerator;
}
/**
@@ -66,8 +70,7 @@ class Filter implements \OCP\Activity\IFilter {
* @since 11.0.0
*/
public function getIcon() {
//TODO: inject
return \OC::$server->getURLGenerator()->imagePath('deck', 'deck-dark.svg');
return $this->urlGenerator->imagePath('deck', 'deck-dark.svg');
}
/**