2 /*********************************************************************************
3 * SugarCRM Community Edition is a customer relationship management program developed by
4 * SugarCRM, Inc. Copyright (C) 2004-2011 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");
52 public function tearDown()
54 foreach($this->createdBeans as $bean)
56 $bean->retrieve($bean->id);
57 $bean->mark_deleted($bean->id);
59 foreach($this->createdFiles as $file)
66 public function testGetLinkedBeans()
68 //Test the accounts_leads relationship
69 $account = BeanFactory::newBean("Accounts");
70 $account->name = "GetLinkedBeans Test Account";
72 $this->createdBeans[] = $account;
74 $case = BeanFactory::newBean("Cases");
75 $case->name = "GetLinkedBeans Test Cases";
77 $this->createdBeans[] = $case;
79 $this->assertTrue($account->load_relationship("cases"));
80 $this->assertInstanceOf("Link2", $account->cases);
81 $this->assertTrue($account->cases->loadedSuccesfully());
82 $account->cases->add($case);
86 'operator' => ' LIKE ',
87 'rhs_value' => "'{$case->id}'",
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');
93 $contact = BeanFactory::newBean("Contacts");
94 $contact->first_name = "First Name GetLinkedBeans Test Contacts";
95 $contact->last_name = "First Name GetLinkedBeans Test Contacts";
97 $this->createdBeans[] = $contact;
99 $this->assertTrue($account->load_relationship("contacts"));
100 $this->assertInstanceOf("Link2", $account->contacts);
101 $this->assertTrue($account->contacts->loadedSuccesfully());
102 $account->contacts->add($contact);
106 'operator' => ' LIKE ',
107 'rhs_value' => "'{$contact->id}'",
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');