]> CyberLeo.Net >> Repos - Github/sugarcrm.git/blob - tests/data/GetLinkedBeansTest.php
Release 6.4.0
[Github/sugarcrm.git] / tests / data / GetLinkedBeansTest.php
1 <?php
2 /*********************************************************************************
3  * SugarCRM Community Edition is a customer relationship management program developed by
4  * SugarCRM, Inc. Copyright (C) 2004-2011 SugarCRM Inc.
5  * 
6  * This program is free software; you can redistribute it and/or modify it under
7  * the terms of the GNU Affero General Public License version 3 as published by the
8  * Free Software Foundation with the addition of the following permission added
9  * to Section 15 as permitted in Section 7(a): FOR ANY PART OF THE COVERED WORK
10  * IN WHICH THE COPYRIGHT IS OWNED BY SUGARCRM, SUGARCRM DISCLAIMS THE WARRANTY
11  * OF NON INFRINGEMENT OF THIRD PARTY RIGHTS.
12  * 
13  * This program is distributed in the hope that it will be useful, but WITHOUT
14  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
15  * FOR A PARTICULAR PURPOSE.  See the GNU Affero General Public License for more
16  * details.
17  * 
18  * You should have received a copy of the GNU Affero General Public License along with
19  * this program; if not, see http://www.gnu.org/licenses or write to the Free
20  * Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
21  * 02110-1301 USA.
22  * 
23  * You can contact SugarCRM, Inc. headquarters at 10050 North Wolfe Road,
24  * SW2-130, Cupertino, CA 95014, USA. or at email address contact@sugarcrm.com.
25  * 
26  * The interactive user interfaces in modified source and object code versions
27  * of this program must display Appropriate Legal Notices, as required under
28  * Section 5 of the GNU Affero General Public License version 3.
29  * 
30  * In accordance with Section 7(b) of the GNU Affero General Public License version 3,
31  * these Appropriate Legal Notices must retain the display of the "Powered by
32  * SugarCRM" logo. If the display of the logo is not reasonably feasible for
33  * technical reasons, the Appropriate Legal Notices must display the words
34  * "Powered by SugarCRM".
35  ********************************************************************************/
36
37
38 require_once("data/BeanFactory.php");
39 class GetLinkedBeansTest extends Sugar_PHPUnit_Framework_TestCase
40 {
41     protected $createdBeans = array();
42     protected $createdFiles = array();
43
44     public function setUp()
45         {
46             $GLOBALS['current_user'] = SugarTestUserUtilities::createAnonymousUser();
47         $GLOBALS['current_user']->setPreference('timezone', "America/Los_Angeles");
48             $GLOBALS['current_user']->setPreference('datef', "m/d/Y");
49                 $GLOBALS['current_user']->setPreference('timef', "h.iA");
50         }
51
52         public function tearDown()
53         {
54             foreach($this->createdBeans as $bean)
55         {
56             $bean->retrieve($bean->id);
57             $bean->mark_deleted($bean->id);
58         }
59         foreach($this->createdFiles as $file)
60         {
61             if (is_file($file))
62                 unlink($file);
63         }
64         }
65
66     public function testGetLinkedBeans()
67     {
68         //Test the accounts_leads relationship
69         $account = BeanFactory::newBean("Accounts");
70         $account->name = "GetLinkedBeans Test Account";
71         $account->save();
72         $this->createdBeans[] = $account;
73
74         $case  = BeanFactory::newBean("Cases");
75         $case->name = "GetLinkedBeans Test Cases";
76         $case->save();
77         $this->createdBeans[] = $case;
78
79         $this->assertTrue($account->load_relationship("cases"));
80         $this->assertInstanceOf("Link2", $account->cases);
81         $this->assertTrue($account->cases->loadedSuccesfully());
82         $account->cases->add($case);
83
84         $where = array(
85                  'lhs_field' => 'id',
86                  'operator' => ' LIKE ',
87                  'rhs_value' => "'{$case->id}'",
88         );
89
90         $cases = $account->get_linked_beans('cases', 'Case', array(), 0, -1, 0, $where);
91         $this->assertEquals(1, count($cases), 'Assert that we have found the test case linked to the test account');
92
93         $contact  = BeanFactory::newBean("Contacts");
94         $contact->first_name = "First Name GetLinkedBeans Test Contacts";
95         $contact->last_name = "First Name GetLinkedBeans Test Contacts";
96         $contact->save();
97         $this->createdBeans[] = $contact;
98
99         $this->assertTrue($account->load_relationship("contacts"));
100         $this->assertInstanceOf("Link2", $account->contacts);
101         $this->assertTrue($account->contacts->loadedSuccesfully());
102         $account->contacts->add($contact);
103
104         $where = array(
105                  'lhs_field' => 'id',
106                  'operator' => ' LIKE ',
107                  'rhs_value' => "'{$contact->id}'",
108         );
109
110         $contacts = $account->get_linked_beans('contacts', 'Contact', array(), 0, -1, 0, $where);
111         $this->assertEquals(1, count($contacts), 'Assert that we have found the test contact linked to the test account');
112     }
113     
114 }
115 ?>