/** * @param ProjectModel $projectModel * @param string $questionId * @param QuestionModel $questionModel * @return string activity id */ public static function addQuestion($projectModel, $questionId, $questionModel) { $activity = new ActivityModel($projectModel); $text = new TextModel($projectModel, $questionModel->textRef->asString()); $activity->action = ActivityModel::ADD_QUESTION; $activity->textRef->id = $questionModel->textRef->asString(); $activity->questionRef->id = $questionId; $activity->addContent(ActivityModel::TEXT, $text->title); $activity->addContent(ActivityModel::QUESTION, $questionModel->getTitleForDisplay()); $activityId = $activity->write(); UnreadActivityModel::markUnreadForProjectMembers($activityId, $projectModel); UnreadQuestionModel::markUnreadForProjectMembers($questionId, $projectModel); return $activityId; }
public function testUnreadQuestionModel_markAllRead_unreadItems_noUnreadItems() { $e = new MongoTestEnvironment(); $e->clean(); $project = $e->createProject("unread_test", "unreadCode"); $userId1 = $e->createUser('user1', 'user1', 'user1'); $userId2 = $e->createUser('user2', 'user2', 'user2'); $q1 = new QuestionModel($project); $q1->title = "Question 1"; $qId1 = $q1->write(); $q2 = new QuestionModel($project); $q2->title = "Question 2"; $qId2 = $q2->write(); $unreadModel = new UnreadQuestionModel($userId1, $project->id->asString()); $unreadModel->markUnread($qId1); $unreadModel->markUnread($qId2); $unreadModel->write(); $otherUnreadModel = new UnreadQuestionModel($userId1, $project->id->asString()); $this->assertTrue($otherUnreadModel->isUnread($qId1)); $this->assertTrue($otherUnreadModel->isUnread($qId2)); $otherUnreadModel->markAllRead(); $otherUnreadModel->write(); $unreadModel->read(); $this->assertFalse($unreadModel->isUnread($qId1)); $this->assertFalse($unreadModel->isUnread($qId2)); }