]> CyberLeo.Net >> Repos - Github/sugarcrm.git/blob - tests/SugarTestEmailUtilities.php
Added unit tests.
[Github/sugarcrm.git] / tests / SugarTestEmailUtilities.php
1 <?php
2 require_once 'modules/Emails/Email.php';
3
4 class SugarTestEmailUtilities
5 {
6     private static $_createdEmails = array();
7
8     private function __construct() {}
9
10     public static function createEmail($id = '', $override = array()) 
11     {
12         global $timedate;
13         
14         $time = mt_rand();
15         $name = 'SugarEmail';
16         $email = new Email();
17         $email->name = $name . $time;
18         $email->type = 'out';
19         $email->status = 'sent';
20         $email->date_sent = $timedate->to_display_date_time(gmdate("Y-m-d H:i:s", (gmmktime() - (3600 * 24 * 2) ))) ; // Two days ago
21         if(!empty($id))
22         {
23             $email->new_with_id = true;
24             $email->id = $id;
25         }
26         foreach($override as $key => $value)
27         {
28             $email->$key = $value;
29         }
30         $email->save();
31         if(!empty($override['parent_id']) && !empty($override['parent_type']))
32         {
33             self::createEmailsBeansRelationship($email->id, $override['parent_type'], $override['parent_id']);
34         }
35         self::$_createdEmails[] = $email;
36         return $email;
37     }
38
39     public static function removeAllCreatedEmails() 
40     {
41         $email_ids = self::getCreatedEmailIds();
42         $GLOBALS['db']->query('DELETE FROM emails WHERE id IN (\'' . implode("', '", $email_ids) . '\')');
43         self::removeCreatedEmailBeansRelationships();
44     }
45     
46     private static function createEmailsBeansRelationship($email_id, $parent_type, $parent_id)
47     {
48         $unique_id = create_guid();
49         $GLOBALS['db']->query("INSERT INTO emails_beans SET id = '{$unique_id}', email_id = '{$email_id}', bean_id = '{$parent_id}', ".
50                                                   "bean_module = '{$parent_type}', date_modified = '".gmdate('Y-m-d H:i:s')."', deleted = 0");
51     }
52     
53     private static function removeCreatedEmailBeansRelationships(){
54         $email_ids = self::getCreatedEmailIds();
55         $GLOBALS['db']->query('DELETE FROM emails_beans WHERE email_id IN (\'' . implode("', '", $email_ids) . '\')');
56     }
57     
58     public static function getCreatedEmailIds() 
59     {
60         $email_ids = array();
61         foreach (self::$_createdEmails as $email) {
62             $email_ids[] = $email->id;
63         }
64         return $email_ids;
65     }
66 }
67 ?>