Apply PSR-12 code style (#3886)
[GitHub/WoltLab/WCF.git] / wcfsetup / install / files / lib / system / user / notification / event / TTestableModerationQueueUserNotificationEvent.class.php
CommitLineData
e0c10ca7 1<?php
a9229942 2
e0c10ca7 3namespace wcf\system\user\notification\event;
a9229942 4
e0c10ca7
MS
5use wcf\data\moderation\queue\ModerationQueue;
6use wcf\data\object\type\ObjectTypeCache;
7use wcf\data\user\UserProfile;
8use wcf\system\moderation\queue\ModerationQueueManager;
9use wcf\system\moderation\queue\ModerationQueueReportManager;
10use wcf\system\WCF;
11
12/**
13 * Provides a method to create a moderation queue entry for testing user notification
14 * events.
15 *
a9229942
TD
16 * @author Matthias Schmidt
17 * @copyright 2001-2019 WoltLab GmbH
18 * @license GNU Lesser General Public License <http://opensource.org/licenses/lgpl-license.php>
19 * @package WoltLabSuite\Core\System\User\Notification\Event
20 * @since 3.1
e0c10ca7 21 */
a9229942
TD
22trait TTestableModerationQueueUserNotificationEvent
23{
24 /**
25 * Creates a moderation queue entry for a reported user.
26 *
27 * @param UserProfile $reportedUser
28 * @param UserProfile $reportingUser
29 * @return ModerationQueue
30 */
31 public static function getTestUserModerationQueueEntry(UserProfile $reportedUser, UserProfile $reportingUser)
32 {
33 $objectTypeID = ModerationQueueReportManager::getInstance()->getObjectTypeID('com.woltlab.wcf.user');
34
35 $originalUser = WCF::getUser();
36 WCF::getSession()->changeUser($reportingUser->getDecoratedObject(), true);
37
38 ModerationQueueReportManager::getInstance()->addReport(
39 ObjectTypeCache::getInstance()->getObjectType($objectTypeID)->objectType,
40 $reportedUser->userID,
41 'Report Message'
42 );
43
44 WCF::getSession()->changeUser($originalUser, true);
45
46 $sql = "SELECT *
47 FROM wcf" . WCF_N . "_moderation_queue
48 WHERE objectTypeID = ?
49 AND objectID = ?";
50 $statement = WCF::getDB()->prepareStatement($sql);
51 $statement->execute([$objectTypeID, $reportedUser->userID]);
52
53 $moderationQueue = $statement->fetchObject(ModerationQueue::class);
54
55 ModerationQueueManager::getInstance()->setAssignment([$moderationQueue->queueID => true]);
56
57 return $moderationQueue;
58 }
e0c10ca7 59}