3 namespace wcf\system\user\notification\event
;
5 use wcf\data\conversation\Conversation
;
6 use wcf\data\conversation\ConversationAction
;
7 use wcf\data\conversation\message\ConversationMessage
;
8 use wcf\data\conversation\message\ConversationMessageAction
;
9 use wcf\data\user\UserProfile
;
12 * Provides methods to create conversations and conversation messages for testing
13 * user notification events.
15 * @author Matthias Schmidt
16 * @copyright 2001-2019 WoltLab GmbH
17 * @license GNU Lesser General Public License <http://opensource.org/licenses/lgpl-license.php>
20 trait TTestableConversationRelatedUserNotificationEvent
23 * Creates a conversation for testing.
25 * @param UserProfile $conversationAuthor
26 * @param UserProfile $participant
27 * @return Conversation
29 public static function createTestConversation(UserProfile
$conversationAuthor, UserProfile
$participant)
31 return (new ConversationAction([], 'create', [
33 'subject' => 'Test Conversation Subject',
35 'userID' => $conversationAuthor->userID
,
36 'username' => $conversationAuthor->username
,
39 'message' => 'Test Conversation Message',
41 'participants' => [$participant->userID
],
42 ]))->executeAction()['returnValues'];
46 * Creates a conversation message for testing.
48 * @param UserProfile $conversationAuthor
49 * @param UserProfile $messageAuthor
50 * @return ConversationMessage
52 public static function createTestConversationMessage(UserProfile
$conversationAuthor, UserProfile
$messageAuthor)
54 $conversation = self
::createTestConversation($conversationAuthor, $messageAuthor);
56 return (new ConversationMessageAction([], 'create', [
58 'conversationID' => $conversation->conversationID
,
59 'message' => 'Test Conversation Message Message',
61 'userID' => $messageAuthor->userID
,
62 'username' => $messageAuthor->username
,
64 'conversation' => $conversation,
65 ]))->executeAction()['returnValues'];