]> CyberLeo.Net >> Repos - Github/sugarcrm.git/blob - tests/modules/ModuleBuilder/Bug49024Test.php
Release 6.5.10
[Github/sugarcrm.git] / tests / modules / ModuleBuilder / Bug49024Test.php
1 <?php
2 /*********************************************************************************
3  * SugarCRM Community Edition is a customer relationship management program developed by
4  * SugarCRM, Inc. Copyright (C) 2004-2013 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 'modules/ModuleBuilder/parsers/relationships/OneToOneRelationship.php' ;
39 require_once 'modules/ModuleBuilder/parsers/relationships/DeployedRelationships.php' ;
40 require_once 'modules/ModuleBuilder/parsers/relationships/UndeployedRelationships.php' ;
41
42 /**
43  * Bug 49024
44  * Relationships Created in Earlier Versions Cause Conflicts and AJAX Errors After Upgrade 
45  * 
46  * @ticket 49024
47  */
48 class Bug49024Test extends Sugar_PHPUnit_Framework_TestCase
49 {
50     private $objOneToOneRelationship;
51
52     public function setUp()
53     {
54         $beanList = array();
55         $beanFiles = array();
56         require('include/modules.php');
57         $GLOBALS['beanList'] = $beanList;
58         $GLOBALS['beanFiles'] = $beanFiles;
59
60         $GLOBALS['current_user'] = SugarTestUserUtilities::createAnonymousUser();
61
62         $this->objOneToOneRelationship = $this->getMockBuilder('OneToOneRelationship')
63             ->disableOriginalConstructor()
64             ->setMethods(array('getDefinition'))
65             ->getMock();
66
67         $this->objOneToOneRelationship->expects($this->any())
68             ->method('getDefinition')
69             ->will($this->returnValue(array(
70                     'lhs_module' => 'lhs_module',
71                     'rhs_module' => 'rhs_module'
72                 )));
73
74     }
75
76     public function tearDown()
77     {
78         SugarTestUserUtilities::removeAllCreatedAnonymousUsers();
79         unset($GLOBALS['current_user']);
80
81         unset($GLOBALS['beanFiles']);
82         unset($GLOBALS['beanList']);
83         unset($this->objOneToOneRelationship);
84     }
85
86     /**
87      * @group 49024
88      */
89     public function testDeployedRelationshipsUniqName()
90     {
91         $objDeployedRelationships = $this->getMockBuilder('DeployedRelationshipsBug49024Test')
92             ->disableOriginalConstructor()
93             ->setMethods(array('load', 'getRelationshipList'))
94             ->getMock();
95
96         $objDeployedRelationships->expects($this->any())
97             ->method('getRelationshipList')
98             ->will($this->returnValue(array()));
99
100         $name = $objDeployedRelationships->getUniqueNameBug49024Test($this->objOneToOneRelationship);
101         $this->assertEquals('lhs_module_rhs_module_1', $name);
102     }
103
104     /**
105      * @group 49024
106      */
107     public function testDeployedRelationshipsUniqName2()
108     {
109         $objDeployedRelationships = $this->getMockBuilder('DeployedRelationshipsBug49024Test')
110             ->disableOriginalConstructor()
111             ->setMethods(array('load', 'getRelationshipList'))
112             ->getMock();
113
114         $objDeployedRelationships->expects($this->any())
115             ->method('getRelationshipList')
116             ->will($this->returnValue(array(
117             'lhs_module_rhs_module_1' => true, 'lhs_module_rhs_module_2' => true
118         )));
119
120         $name = $objDeployedRelationships->getUniqueNameBug49024Test($this->objOneToOneRelationship);
121         $this->assertEquals('lhs_module_rhs_module_3', $name);
122     }
123
124     /**
125      * @group 49024
126      */
127     public function testUndeployedRelationshipsUniqName()
128     {
129         $objUndeployedRelationships = $this->getMockBuilder('UndeployedRelationshipsBug49024Test')
130             ->disableOriginalConstructor()
131             ->setMethods(array('load', 'getRelationshipList'))
132             ->getMock();
133
134         $objUndeployedRelationships->expects($this->any())
135             ->method('getRelationshipList')
136             ->will($this->returnValue(array()));
137
138         $name = $objUndeployedRelationships->getUniqueNameBug49024Test($this->objOneToOneRelationship);
139         $this->assertEquals('lhs_module_rhs_module', $name);
140     }
141
142     /**
143      * @group 49024
144      */
145     public function testUndeployedRelationshipsUniqName2()
146     {
147         $objUndeployedRelationships = $this->getMockBuilder('UndeployedRelationshipsBug49024Test')
148             ->disableOriginalConstructor()
149             ->setMethods(array('load', 'getRelationshipList'))
150             ->getMock();
151
152         $objUndeployedRelationships->expects($this->any())
153             ->method('getRelationshipList')
154             ->will($this->returnValue(array(
155                 'lhs_module_rhs_module' => true, 'lhs_module_rhs_module_1' => true, 'lhs_module_rhs_module_2' => true
156             )));
157
158         $name = $objUndeployedRelationships->getUniqueNameBug49024Test($this->objOneToOneRelationship);
159         $this->assertEquals('lhs_module_rhs_module_3', $name);
160     }
161 }
162
163 class DeployedRelationshipsBug49024Test extends DeployedRelationships
164 {
165     public function getUniqueNameBug49024Test ($relationship)
166     {
167         return $this->getUniqueName($relationship);
168     }
169 }
170
171 class UndeployedRelationshipsBug49024Test extends UndeployedRelationships
172 {
173     public function getUniqueNameBug49024Test ($relationship)
174     {
175         return $this->getUniqueName($relationship);
176     }
177 }