]> CyberLeo.Net >> Repos - Github/sugarcrm.git/blob - tests/modules/Leads/Bug50127Test.php
Release 6.5.10
[Github/sugarcrm.git] / tests / modules / Leads / Bug50127Test.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/Leads/views/view.convertlead.php');
39
40 /**
41  * 
42  * Test if Contact is properly linked to Lead if we are not creating a contact
43  * but linking an existing one.
44  * Check if Account is linked with Contact.
45  * 
46  * @author avucinic@sugarcrm.com
47  *
48  */
49 class Bug50127Test extends Sugar_PHPUnit_Framework_OutputTestCase
50 {
51
52     public function setUp()
53     {
54         SugarTestHelper::setUp('current_user');
55         SugarTestHelper::setUp('app_list_strings');
56         SugarTestHelper::setUp('beanList');
57         SugarTestHelper::setUp('beanFiles');
58     }
59     
60     public function tearDown()
61     {
62         SugarTestContactUtilities::removeAllCreatedContacts();
63         SugarTestAccountUtilities::removeAllCreatedAccounts();
64         SugarTestLeadUtilities::removeAllCreatedLeads();
65         
66         SugarTestHelper::tearDown();
67
68         $_REQUEST = array();
69     }
70  
71     /**
72      * Create a lead and convert it to an existing Account and Contact
73      */
74     public function testConvertLinkingExistingContact() {
75         // Create records 
76         $lead = SugarTestLeadUtilities::createLead();
77         $account = SugarTestAccountUtilities::createAccount();
78         $contact = SugarTestContactUtilities::createContact();
79
80         // ConvertLead to an existing Contact and Account
81         $_REQUEST = array (
82             'module' => 'Leads',
83             'record' => $lead->id,
84             'isDuplicate' => 'false',
85             'action' => 'ConvertLead',
86             // Existing Contact
87             'convert_create_Contacts' => 'false',
88             'report_to_name' => $contact->name,
89             'reports_to_id' => $contact->id,
90             // Existing Account
91             'convert_create_Accounts' => 'false',
92             'account_name' => $account->name,
93             'account_id' => $account->id,
94             // Save
95             'handle' => 'save',
96         );
97
98         // Call display to trigger conversion
99         $vc = new ViewConvertLead();
100         $vc->display();
101
102         // Refresh Lead
103         $leadId = $lead->id;
104         $lead = new Lead();
105         $lead->retrieve($leadId);
106         // Refresh Contact
107         $contactId = $contact->id;
108         $contact = new Contact();
109         $contact->retrieve($contactId);
110
111         // Check if contact it's linked properly
112         $this->assertEquals($contact->id, $lead->contact_id, 'Contact not linked with Lead successfully.');
113         // Check if account is linked with lead properly
114         $this->assertEquals($account->id, $lead->account_id, 'Account not linked with Lead successfully.');
115         // Check if account is linked with contact properly        
116         $this->assertEquals($account->id, $contact->account_id, 'Account not linked with Contact successfully.');
117         // Check Lead Status, should be converted
118         $this->assertEquals('Converted', $lead->status, "Lead status should be 'Converted'.");
119     }
120 }