2 /*********************************************************************************
3 * SugarCRM Community Edition is a customer relationship management program developed by
4 * SugarCRM, Inc. Copyright (C) 2004-2012 SugarCRM Inc.
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.
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
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
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.
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.
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 ********************************************************************************/
38 require_once("data/BeanFactory.php");
39 class GetLinkedBeansTest extends Sugar_PHPUnit_Framework_TestCase
41 protected $createdBeans = array();
42 protected $createdFiles = array();
44 public function setUp()
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");
53 require('include/modules.php');
54 $GLOBALS['beanList'] = $beanList;
55 $GLOBALS['beanFiles'] = $beanFiles;
58 public function tearDown()
60 foreach($this->createdBeans as $bean)
62 $bean->retrieve($bean->id);
63 $bean->mark_deleted($bean->id);
65 foreach($this->createdFiles as $file)
71 unset($GLOBALS['beanFiles'], $GLOBALS['beanList']);
74 public function testGetLinkedBeans()
76 //Test the accounts_leads relationship
77 $account = BeanFactory::newBean("Accounts");
78 $account->name = "GetLinkedBeans Test Account";
80 $this->createdBeans[] = $account;
82 $case = BeanFactory::newBean("Cases");
83 $case->name = "GetLinkedBeans Test Cases";
85 $this->createdBeans[] = $case;
87 $this->assertTrue($account->load_relationship("cases"));
88 $this->assertInstanceOf("Link2", $account->cases);
89 $this->assertTrue($account->cases->loadedSuccesfully());
90 $account->cases->add($case);
95 'operator' => ' LIKE ',
96 'rhs_value' => "{$case->id}",
99 $cases = $account->get_linked_beans('cases', 'Case', array(), 0, 10, 0, $where);
100 $this->assertEquals(1, count($cases), 'Assert that we have found the test case linked to the test account');
102 $contact = BeanFactory::newBean("Contacts");
103 $contact->first_name = "First Name GetLinkedBeans Test Contacts";
104 $contact->last_name = "First Name GetLinkedBeans Test Contacts";
106 $this->createdBeans[] = $contact;
108 $this->assertTrue($account->load_relationship("contacts"));
109 $this->assertInstanceOf("Link2", $account->contacts);
110 $this->assertTrue($account->contacts->loadedSuccesfully());
111 $account->contacts->add($contact);
115 'operator' => ' LIKE ',
116 'rhs_value' => "{$contact->id}",
119 $contacts = $account->get_linked_beans('contacts', 'Contact', array(), 0, -1, 0, $where);
120 $this->assertEquals(1, count($contacts), 'Assert that we have found the test contact linked to the test account');