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));
 }