From 94053560e76f57a354e7a9f0198f122126f13b78 Mon Sep 17 00:00:00 2001 From: Julius Haertl Date: Wed, 9 Nov 2016 14:05:23 +0100 Subject: [PATCH] Complete BoardServiceTest --- lib/Service/BoardService.php | 168 ++++++++++++------------ tests/unit/Service/BoardServiceTest.php | 20 +++ 2 files changed, 105 insertions(+), 83 deletions(-) diff --git a/lib/Service/BoardService.php b/lib/Service/BoardService.php index 515acf8e5..9a52370f5 100644 --- a/lib/Service/BoardService.php +++ b/lib/Service/BoardService.php @@ -5,20 +5,20 @@ * @author Julius Härtl * * @license GNU AGPL version 3 or any later version - * + * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. - * + * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. - * + * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see . - * + * */ namespace OCA\Deck\Service; @@ -37,96 +37,98 @@ use \OCA\Deck\Db\LabelMapper; class BoardService { - private $boardMapper; - private $aclMapper; - private $labelMapper; - private $logger; - private $l10n; + private $boardMapper; + private $aclMapper; + private $labelMapper; + private $logger; + private $l10n; - public function __construct(BoardMapper $boardMapper, - ILogger $logger, - IL10N $l10n, - LabelMapper $labelMapper, - AclMapper $aclMapper, - IGroupManager $groupManager) { - $this->boardMapper = $boardMapper; - $this->labelMapper = $labelMapper; - $this->aclMapper = $aclMapper; - $this->logger = $logger; - $this->l10n = $l10n; + public function __construct( + BoardMapper $boardMapper, + ILogger $logger, + IL10N $l10n, + LabelMapper $labelMapper, + AclMapper $aclMapper, + IGroupManager $groupManager + ) { + $this->boardMapper = $boardMapper; + $this->labelMapper = $labelMapper; + $this->aclMapper = $aclMapper; + $this->logger = $logger; + $this->l10n = $l10n; $this->groupManager = $groupManager; - } + } - public function findAll($userInfo) { - $userBoards = $this->boardMapper->findAllByUser($userInfo['user']); - $groupBoards = $this->boardMapper->findAllByGroups($userInfo['user'], $userInfo['groups']); - return array_unique(array_merge($userBoards, $groupBoards)); - } + public function findAll($userInfo) { + $userBoards = $this->boardMapper->findAllByUser($userInfo['user']); + $groupBoards = $this->boardMapper->findAllByGroups($userInfo['user'], $userInfo['groups']); + return array_unique(array_merge($userBoards, $groupBoards)); + } - public function find($boardId) { - return $this->boardMapper->find($boardId, true, true); - } + public function find($boardId) { + return $this->boardMapper->find($boardId, true, true); + } - public function create($title, $userId, $color) { - $board = new Board(); - $board->setTitle($title); - $board->setOwner($userId); - $board->setColor($color); - $new_board = $this->boardMapper->insert($board); + public function create($title, $userId, $color) { + $board = new Board(); + $board->setTitle($title); + $board->setOwner($userId); + $board->setColor($color); + $new_board = $this->boardMapper->insert($board); - // create new labels - $default_labels = [ - '31CC7C' => $this->l10n->t('Finished'), - '317CCC' => $this->l10n->t('To review'), - 'FF7A66' => $this->l10n->t('Action needed'), - 'F1DB50' => $this->l10n->t('Later')]; - $labels = []; - foreach ($default_labels as $color=>$title) { - $label = new Label(); - $label->setColor($color); - $label->setTitle($title); - $label->setBoardId($new_board->getId()); - $labels[] = $this->labelMapper->insert($label); - } - $new_board->setLabels($labels); - return $new_board; + // create new labels + $default_labels = [ + '31CC7C' => $this->l10n->t('Finished'), + '317CCC' => $this->l10n->t('To review'), + 'FF7A66' => $this->l10n->t('Action needed'), + 'F1DB50' => $this->l10n->t('Later')]; + $labels = []; + foreach ($default_labels as $color => $title) { + $label = new Label(); + $label->setColor($color); + $label->setTitle($title); + $label->setBoardId($new_board->getId()); + $labels[] = $this->labelMapper->insert($label); + } + $new_board->setLabels($labels); + return $new_board; - } + } - public function delete($id) { - return $this->boardMapper->delete($this->find($id)); - } + public function delete($id) { + return $this->boardMapper->delete($this->find($id)); + } - public function update($id, $title, $color) { - $board = $this->find($id); - $board->setTitle($title); - $board->setColor($color); - return $this->boardMapper->update($board); - } - + public function update($id, $title, $color) { + $board = $this->find($id); + $board->setTitle($title); + $board->setColor($color); + return $this->boardMapper->update($board); + } - public function addAcl($boardId, $type, $participant, $write, $invite, $manage) { - $acl = new Acl(); - $acl->setBoardId($boardId); - $acl->setType($type); - $acl->setParticipant($participant); - $acl->setPermissionWrite($write); - $acl->setPermissionInvite($invite); - $acl->setPermissionManage($manage); - return $this->aclMapper->insert($acl); - } - public function updateAcl($id, $write, $invite, $manage) { - $acl = $this->aclMapper->find($id); - $acl->setPermissionWrite($write); - $acl->setPermissionInvite($invite); - $acl->setPermissionManage($manage); - return $this->aclMapper->update($acl); - } + public function addAcl($boardId, $type, $participant, $write, $invite, $manage) { + $acl = new Acl(); + $acl->setBoardId($boardId); + $acl->setType($type); + $acl->setParticipant($participant); + $acl->setPermissionWrite($write); + $acl->setPermissionInvite($invite); + $acl->setPermissionManage($manage); + return $this->aclMapper->insert($acl); + } - public function deleteAcl($id) { - $acl = $this->aclMapper->find($id); - return $this->aclMapper->delete($acl); - } + public function updateAcl($id, $write, $invite, $manage) { + $acl = $this->aclMapper->find($id); + $acl->setPermissionWrite($write); + $acl->setPermissionInvite($invite); + $acl->setPermissionManage($manage); + return $this->aclMapper->update($acl); + } + + public function deleteAcl($id) { + $acl = $this->aclMapper->find($id); + return $this->aclMapper->delete($acl); + } } \ No newline at end of file diff --git a/tests/unit/Service/BoardServiceTest.php b/tests/unit/Service/BoardServiceTest.php index 45b075042..dc3c932ce 100644 --- a/tests/unit/Service/BoardServiceTest.php +++ b/tests/unit/Service/BoardServiceTest.php @@ -112,6 +112,26 @@ class BoardServiceTest extends \PHPUnit_Framework_TestCase { $this->assertCount(4, $b->getLabels()); } + public function testUpdate() { + $board = new Board(); + $board->setTitle('MyBoard'); + $board->setOwner('admin'); + $board->setColor('00ff00'); + $this->boardMapper->expects($this->once()) + ->method('find') + ->with(123) + ->willReturn($board); + $this->boardMapper->expects($this->once()) + ->method('update') + ->with($board) + ->willReturn($board); + $b = $this->service->update(123, 'MyNewNameBoard', 'ffffff'); + + $this->assertEquals($b->getTitle(), 'MyNewNameBoard'); + $this->assertEquals($b->getOwner(), 'admin'); + $this->assertEquals($b->getColor(), 'ffffff'); + } + public function testDelete() { $this->boardMapper->expects($this->once()) ->method('find')