2 /*********************************************************************************
3 * SugarCRM Community Edition is a customer relationship management program developed by
4 * SugarCRM, Inc. Copyright (C) 2004-2013 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 'modules/ModuleBuilder/parsers/relationships/OneToOneRelationship.php' ;
39 require_once 'modules/ModuleBuilder/parsers/relationships/DeployedRelationships.php' ;
40 require_once 'modules/ModuleBuilder/parsers/relationships/UndeployedRelationships.php' ;
44 * Relationships Created in Earlier Versions Cause Conflicts and AJAX Errors After Upgrade
48 class Bug49024Test extends Sugar_PHPUnit_Framework_TestCase
50 private $objOneToOneRelationship;
52 public function setUp()
56 require('include/modules.php');
57 $GLOBALS['beanList'] = $beanList;
58 $GLOBALS['beanFiles'] = $beanFiles;
60 $GLOBALS['current_user'] = SugarTestUserUtilities::createAnonymousUser();
62 $this->objOneToOneRelationship = $this->getMockBuilder('OneToOneRelationship')
63 ->disableOriginalConstructor()
64 ->setMethods(array('getDefinition'))
67 $this->objOneToOneRelationship->expects($this->any())
68 ->method('getDefinition')
69 ->will($this->returnValue(array(
70 'lhs_module' => 'lhs_module',
71 'rhs_module' => 'rhs_module'
76 public function tearDown()
78 SugarTestUserUtilities::removeAllCreatedAnonymousUsers();
79 unset($GLOBALS['current_user']);
81 unset($GLOBALS['beanFiles']);
82 unset($GLOBALS['beanList']);
83 unset($this->objOneToOneRelationship);
89 public function testDeployedRelationshipsUniqName()
91 $objDeployedRelationships = $this->getMockBuilder('DeployedRelationshipsBug49024Test')
92 ->disableOriginalConstructor()
93 ->setMethods(array('load', 'getRelationshipList'))
96 $objDeployedRelationships->expects($this->any())
97 ->method('getRelationshipList')
98 ->will($this->returnValue(array()));
100 $name = $objDeployedRelationships->getUniqueNameBug49024Test($this->objOneToOneRelationship);
101 $this->assertEquals('lhs_module_rhs_module_1', $name);
107 public function testDeployedRelationshipsUniqName2()
109 $objDeployedRelationships = $this->getMockBuilder('DeployedRelationshipsBug49024Test')
110 ->disableOriginalConstructor()
111 ->setMethods(array('load', 'getRelationshipList'))
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
120 $name = $objDeployedRelationships->getUniqueNameBug49024Test($this->objOneToOneRelationship);
121 $this->assertEquals('lhs_module_rhs_module_3', $name);
127 public function testUndeployedRelationshipsUniqName()
129 $objUndeployedRelationships = $this->getMockBuilder('UndeployedRelationshipsBug49024Test')
130 ->disableOriginalConstructor()
131 ->setMethods(array('load', 'getRelationshipList'))
134 $objUndeployedRelationships->expects($this->any())
135 ->method('getRelationshipList')
136 ->will($this->returnValue(array()));
138 $name = $objUndeployedRelationships->getUniqueNameBug49024Test($this->objOneToOneRelationship);
139 $this->assertEquals('lhs_module_rhs_module', $name);
145 public function testUndeployedRelationshipsUniqName2()
147 $objUndeployedRelationships = $this->getMockBuilder('UndeployedRelationshipsBug49024Test')
148 ->disableOriginalConstructor()
149 ->setMethods(array('load', 'getRelationshipList'))
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
158 $name = $objUndeployedRelationships->getUniqueNameBug49024Test($this->objOneToOneRelationship);
159 $this->assertEquals('lhs_module_rhs_module_3', $name);
163 class DeployedRelationshipsBug49024Test extends DeployedRelationships
165 public function getUniqueNameBug49024Test ($relationship)
167 return $this->getUniqueName($relationship);
171 class UndeployedRelationshipsBug49024Test extends UndeployedRelationships
173 public function getUniqueNameBug49024Test ($relationship)
175 return $this->getUniqueName($relationship);