public function testUnreadAnswerModel_multipleUsers_authorIsNotMarkedUnread() { $e = new MongoTestEnvironment(); $e->clean(); $project = $e->createProject("unread_test", "unreadCode"); $projectId = $project->id->asString(); $userId1 = $e->createUser('user1', 'user1', 'user1'); $user1 = new UserModel($userId1); $user1->addProject($project->id->asString()); $user1->write(); $userId2 = $e->createUser('user2', 'user2', 'user2'); $user2 = new UserModel($userId2); $user2->addProject($project->id->asString()); $user2->write(); $userId3 = $e->createUser('user3', 'user3', 'user3'); $user3 = new UserModel($userId3); $user3->addProject($project->id->asString()); $user3->write(); $answer = array('content' => "test answer", 'id' => ''); $text = new TextModel($project); $text->title = "Text 1"; $usx = MongoTestEnvironment::usxSample(); $text->content = $usx; $textId = $text->write(); $question = new QuestionModel($project); $question->title = "test question"; $question->textRef->id = $textId; $questionId = $question->write(); $answerDto = QuestionCommands::updateAnswer($projectId, $questionId, $answer, $userId1); $answer = array_pop($answerDto); $answerId = $answer['id']; // the answer author does NOT get their answer marked as unread $unreadModel = new UnreadAnswerModel($userId1, $projectId, $questionId); $this->assertFalse($unreadModel->isUnread($answerId)); $unreadModel = new UnreadAnswerModel($userId2, $projectId, $questionId); $this->assertTrue($unreadModel->isUnread($answerId)); $unreadModel = new UnreadAnswerModel($userId3, $projectId, $questionId); $this->assertTrue($unreadModel->isUnread($answerId)); }