public static function sendMessage($projectId, $userIds, $subject, $smsTemplate, $emailTemplate, $htmlEmailTemplate = '')
 {
     $project = new ProjectSettingsModel($projectId);
     $users = array();
     foreach ($userIds as $id) {
         $users[] = new UserModel($id);
     }
     return Communicate::communicateToUsers($users, $project, $subject, $smsTemplate, $emailTemplate, $htmlEmailTemplate);
 }
 public function testCommunicateToUsers_SendEmail_BroadcastMessageStoredAndUnread()
 {
     $e = new MongoTestEnvironment();
     $e->clean();
     $userId = $e->createUser('User', 'Name', '*****@*****.**');
     $user = new UserModel($userId);
     $user->communicate_via = UserModel::COMMUNICATE_VIA_EMAIL;
     $project = $e->createProjectSettings(SF_TESTPROJECTCODE);
     $subject = 'TestSubject';
     $project->emailSettings->fromAddress = '*****@*****.**';
     $project->emailSettings->fromName = 'Scripture Forge ProjectName';
     $smsTemplate = '';
     $emailTemplate = 'TestMessage';
     $delivery = new MockCommunicateDelivery();
     Communicate::communicateToUsers(array($user), $project, $subject, $smsTemplate, $emailTemplate, '', $delivery);
     $unread = new UnreadMessageModel($userId, $project->id->asString());
     $messageIds = $unread->unreadItems();
     $this->assertEqual(count($messageIds), 1);
     $messageId = $messageIds[0];
     $message = new MessageModel($project, $messageId);
     $this->assertEqual($message->subject, $subject);
     $this->assertEqual($message->content, $emailTemplate);
 }