]> CyberLeo.Net >> Repos - Github/sugarcrm.git/blob - tests/data/Bug49505Test.php
Release 6.5.3
[Github/sugarcrm.git] / tests / data / Bug49505Test.php
1 <?php
2
3 /*********************************************************************************
4  * SugarCRM Community Edition is a customer relationship management program developed by
5  * SugarCRM, Inc. Copyright (C) 2004-2012 SugarCRM Inc.
6  * 
7  * This program is free software; you can redistribute it and/or modify it under
8  * the terms of the GNU Affero General Public License version 3 as published by the
9  * Free Software Foundation with the addition of the following permission added
10  * to Section 15 as permitted in Section 7(a): FOR ANY PART OF THE COVERED WORK
11  * IN WHICH THE COPYRIGHT IS OWNED BY SUGARCRM, SUGARCRM DISCLAIMS THE WARRANTY
12  * OF NON INFRINGEMENT OF THIRD PARTY RIGHTS.
13  * 
14  * This program is distributed in the hope that it will be useful, but WITHOUT
15  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
16  * FOR A PARTICULAR PURPOSE.  See the GNU Affero General Public License for more
17  * details.
18  * 
19  * You should have received a copy of the GNU Affero General Public License along with
20  * this program; if not, see http://www.gnu.org/licenses or write to the Free
21  * Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
22  * 02110-1301 USA.
23  * 
24  * You can contact SugarCRM, Inc. headquarters at 10050 North Wolfe Road,
25  * SW2-130, Cupertino, CA 95014, USA. or at email address contact@sugarcrm.com.
26  * 
27  * The interactive user interfaces in modified source and object code versions
28  * of this program must display Appropriate Legal Notices, as required under
29  * Section 5 of the GNU Affero General Public License version 3.
30  * 
31  * In accordance with Section 7(b) of the GNU Affero General Public License version 3,
32  * these Appropriate Legal Notices must retain the display of the "Powered by
33  * SugarCRM" logo. If the display of the logo is not reasonably feasible for
34  * technical reasons, the Appropriate Legal Notices must display the words
35  * "Powered by SugarCRM".
36  ********************************************************************************/
37
38
39 /**
40  * @ticket 49505
41  */
42 class Bug49505Test extends Sugar_PHPUnit_Framework_TestCase
43 {
44
45     /**
46      * @var array
47      */
48     private $_createdBeans = array();
49
50     public function setUp()
51     {
52         SugarTestHelper::setUp('beanList');
53         SugarTestHelper::setUp('beanFiles');
54         SugarTestHelper::setUp('current_user');
55     }
56
57     public function tearDown()
58     {
59         foreach ($this->_createdBeans as $bean) {
60             $bean->retrieve($bean->id);
61             $bean->mark_deleted($bean->id);
62         }
63
64         SugarTestHelper::tearDown();
65     }
66
67     public function testGetRelatedListFunctionWithLink2Class()
68     {
69         $focusModule = 'Accounts';
70         $linkedModules = array(
71             'Bugs', // many-to-many
72             'Contacts' // one-to-many
73         );
74
75         $focus = BeanFactory::newBean($focusModule);
76         $focus->name = "bug49505";
77         $focus->save();
78         $this->_createdBeans[] = $focus;
79
80         foreach ($linkedModules as $v) {
81
82             $linkedBean = BeanFactory::newBean($v);
83             $linkedBean->name = "bug49505";
84             $linkedBean->save();
85             $this->_createdBeans[] = $linkedBean;
86
87             $link = new Link2(strtolower($v), $focus);
88             $link->add(array($linkedBean));
89
90             // get relation from 'Link2' class
91             $link2List = $focus->get_related_list($linkedBean, strtolower($v));
92
93             // get relation for 'get_related_list' function from Link class
94             $focus->field_defs[strtolower($v)]['link_class'] = 'Link';
95             $focus->field_defs[strtolower($v)]['link_file'] = 'data/Link.php';
96             $linkList = $focus->get_related_list($linkedBean, strtolower($v));
97
98             unset($focus->field_defs[strtolower($v)]['link_class']);
99             unset($focus->field_defs[strtolower($v)]['link_file']);
100
101             $this->assertEquals($linkedBean->id, $linkList['list'][0]->id);
102             $this->assertEquals($linkedBean->id, $link2List['list'][0]->id);
103         }
104     }
105
106 }