diff --git a/lib/Service/CardService.php b/lib/Service/CardService.php index 554650837..0cf6cfa60 100644 --- a/lib/Service/CardService.php +++ b/lib/Service/CardService.php @@ -38,6 +38,7 @@ use OCA\Deck\NotFoundException; use OCA\Deck\StatusException; use OCA\Deck\BadRequestException; use OCP\Comments\ICommentsManager; +use OCP\IUserManager; class CardService { @@ -66,6 +67,7 @@ class CardService { AttachmentService $attachmentService, ActivityManager $activityManager, ICommentsManager $commentsManager, + IUserManager $userManager, $userId ) { $this->cardMapper = $cardMapper; @@ -79,6 +81,7 @@ class CardService { $this->attachmentService = $attachmentService; $this->activityManager = $activityManager; $this->commentsManager = $commentsManager; + $this->userManager = $userManager; $this->currentUser = $userId; } @@ -87,7 +90,8 @@ class CardService { $card->setAssignedUsers($this->assignedUsersMapper->find($cardId)); $card->setLabels($this->labelMapper->findAssignedLabelsForCard($cardId)); $card->setAttachmentCount($this->attachmentService->count($cardId)); - $lastRead = $this->commentsManager->getReadMark('deckCard', (string)$card->getId(), \OC::$server->getUserSession()->getUser()); + $user = $this->userManager->get($this->currentUser); + $lastRead = $this->commentsManager->getReadMark('deckCard', (string)$card->getId(), $user); $count = $this->commentsManager->getNumberOfCommentsForObject('deckCard', (string)$card->getId(), $lastRead); $card->setCommentsUnread($count); } diff --git a/tests/unit/Service/CardServiceTest.php b/tests/unit/Service/CardServiceTest.php index ea663a379..9fcb6d176 100644 --- a/tests/unit/Service/CardServiceTest.php +++ b/tests/unit/Service/CardServiceTest.php @@ -37,33 +37,38 @@ use OCA\Deck\Notification\NotificationHelper; use OCA\Deck\StatusException; use OCP\Activity\IEvent; use OCP\Comments\ICommentsManager; +use OCP\IUser; +use OCP\IUserManager; +use PHPUnit\Framework\MockObject\MockObject; use Test\TestCase; class CardServiceTest extends TestCase { - /** @var CardService|\PHPUnit\Framework\MockObject\MockObject */ + /** @var CardService|MockObject */ private $cardService; - /** @var CardMapper|\PHPUnit\Framework\MockObject\MockObject */ + /** @var CardMapper|MockObject */ private $cardMapper; - /** @var StackMapper|\PHPUnit\Framework\MockObject\MockObject */ + /** @var StackMapper|MockObject */ private $stackMapper; - /** @var PermissionService|\PHPUnit\Framework\MockObject\MockObject */ + /** @var PermissionService|MockObject */ private $permissionService; /** @var NotificationHelper */ private $notificationHelper; - /** @var AssignedUsersMapper|\PHPUnit\Framework\MockObject\MockObject */ + /** @var AssignedUsersMapper|MockObject */ private $assignedUsersMapper; - /** @var BoardService|\PHPUnit\Framework\MockObject\MockObject */ + /** @var BoardService|MockObject */ private $boardService; - /** @var LabelMapper|\PHPUnit\Framework\MockObject\MockObject */ + /** @var LabelMapper|MockObject */ private $labelMapper; private $boardMapper; - /** @var AttachmentService|\PHPUnit\Framework\MockObject\MockObject */ + /** @var AttachmentService|MockObject */ private $attachmentService; - /** @var ActivityManager|\PHPUnit\Framework\MockObject\MockObject */ + /** @var ActivityManager|MockObject */ private $activityManager; - /** @var ICommentsManager|\PHPUnit\Framework\MockObject\MockObject */ + /** @var ICommentsManager|MockObject */ private $commentsManager; + /** @var ICommentsManager|MockObject */ + private $userManager; public function setUp() { parent::setUp(); @@ -78,6 +83,7 @@ class CardServiceTest extends TestCase { $this->attachmentService = $this->createMock(AttachmentService::class); $this->activityManager = $this->createMock(ActivityManager::class); $this->commentsManager = $this->createMock(ICommentsManager::class); + $this->userManager = $this->createMock(IUserManager::class); $this->cardService = new CardService( $this->cardMapper, $this->stackMapper, @@ -90,6 +96,7 @@ class CardServiceTest extends TestCase { $this->attachmentService, $this->activityManager, $this->commentsManager, + $this->userManager, 'user1' ); } @@ -107,6 +114,10 @@ class CardServiceTest extends TestCase { } public function testFind() { + $user = $this->createMock(IUser::class); + $this->userManager->expects($this->once()) + ->method('get') + ->willReturn($user); $card = new Card(); $card->setId(1337); $this->cardMapper->expects($this->any())