Account Suspended
Account Suspended
This Account has been suspended.
Contact your hosting provider for more information.
 All Data Structures Functions Variables Pages
AccountDedupeRulesTest.php
1 <?php
2  /*********************************************************************************
3  * Zurmo is a customer relationship management program developed by
4  * Zurmo, Inc. Copyright (C) 2017 Zurmo Inc.
5  *
6  * Zurmo 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 ZURMO, ZURMO DISCLAIMS THE WARRANTY
11  * OF NON INFRINGEMENT OF THIRD PARTY RIGHTS.
12  *
13  * Zurmo 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 Zurmo, Inc. with a mailing address at 27 North Wacker Drive
24  * Suite 370 Chicago, IL 60606. or at email address contact@zurmo.com.
25  *
26  * The interactive user interfaces in original and modified 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 Zurmo
32  * logo and Zurmo copyright notice. If the display of the logo is not reasonably
33  * feasible for technical reasons, the Appropriate Legal Notices must display the words
34  * "Copyright Zurmo Inc. 2017. All rights reserved".
35  ********************************************************************************/
36 
38  {
39  public static function setUpBeforeClass()
40  {
41  parent::setUpBeforeClass();
42  $user = SecurityTestHelper::createSuperAdmin();
43  Yii::app()->user->userModel = $user;
44  $accountData = array(
45  'Account1' => '123-456-789',
46  'Account2' => '123-456-789',
47  'Account3' => '123-456-789',
48  'Account4' => '123-456-789',
49  'Account5' => '123-456-789',
50  'Account6' => '987-654-321',
51  );
52  foreach ($accountData as $name => $phone)
53  {
54  $account = new Account();
55  $account->name = $name;
56  $account->officePhone = $phone;
57  $saved = $account->save();
58  assert('$saved'); // Not Coding Standard
59  }
60  }
61 
62  public function setUp()
63  {
64  Yii::app()->user->userModel = User::getByUsername('super');
65  }
66 
67  public function testGetDedupeViewClassName()
68  {
69  $account = new Account();
70  $dedupeRules = new AccountDedupeRules($account);
71  $this->assertEquals('CreateModelsToMergeListAndChartView', $dedupeRules->getDedupeViewClassName());
72  }
73 
74  public function testRegisterScriptForEditAndDetailsView()
75  {
76  $account = new Account();
77  $dedupeRules = new AccountDedupeRules($account);
78  //Dedupe elements
79  $element = new TextElement($account, 'name');
80  $this->assertNull($dedupeRules->registerScriptForEditAndDetailsView($element));
81  $this->assertTrue(Yii::app()->clientScript->isScriptRegistered('DedupeRulesAccount_name#dedupe-for-edit-and-details-view'));
82  $element = new PhoneElement($account, 'officePhone');
83  $this->assertNull($dedupeRules->registerScriptForEditAndDetailsView($element));
84  $this->assertTrue(Yii::app()->clientScript->isScriptRegistered('DedupeRulesAccount_officePhone#dedupe-for-edit-and-details-view'));
85  //Non dedupe elements
86  $element = new DropDownElement($account, 'industry');
87  $this->assertNull($dedupeRules->registerScriptForEditAndDetailsView($element));
88  $element = new PhoneElement($account, 'officeFax');
89  $this->assertNull($dedupeRules->registerScriptForEditAndDetailsView($element));
90  $element = new IntegerElement($account, 'employees');
91  $this->assertNull($dedupeRules->registerScriptForEditAndDetailsView($element));
92  $element = new DecimalElement($account, 'annualRevenue');
93  $this->assertNull($dedupeRules->registerScriptForEditAndDetailsView($element));
94  $element = new DropDownElement($account, 'type');
95  $this->assertNull($dedupeRules->registerScriptForEditAndDetailsView($element));
96  $element = new UrlElement($account, 'website');
97  $this->assertNull($dedupeRules->registerScriptForEditAndDetailsView($element));
98  $element = new AddressElement($account, 'billingAddress');
99  $this->assertNull($dedupeRules->registerScriptForEditAndDetailsView($element));
100  $element = new AddressElement($account, 'shipingAddress');
101  $this->assertNull($dedupeRules->registerScriptForEditAndDetailsView($element));
102  $element = new TextAreaElement($account, 'description');
103  $this->assertNull($dedupeRules->registerScriptForEditAndDetailsView($element));
104 
105  //Only the dedupe elements needs the script registered
106  $this->assertCount(2, array_pop(Yii::app()->clientScript->scripts));
107  }
108 
109  public function testSearchForDuplicateModels()
110  {
111  $account = new Account();
112  $dedupeRules = new AccountDedupeRules($account);
113  $searchResult = $dedupeRules->searchForDuplicateModels('name', 'Account1');
114  $this->assertEquals('There is 1 possible match. <span class="underline">Click here</span> to view.', $searchResult['message']);
115  $searchResult = $dedupeRules->searchForDuplicateModels('name', 'account');
116  $this->assertEquals('There are at least 5 possible matches. <span class="underline">Click here</span> to view.', $searchResult['message']);
117  $this->assertCount (6, $searchResult['matchedModels']);
118  $searchResult = $dedupeRules->searchForDuplicateModels('officePhone', '123-456-789');
119  $this->assertEquals('There are 5 possible matches. <span class="underline">Click here</span> to view.', $searchResult['message']);
120  $this->assertCount (5, $searchResult['matchedModels']);
121  $searchResult = $dedupeRules->searchForDuplicateModels('officePhone', '987-654-321');
122  $this->assertEquals('There is 1 possible match. <span class="underline">Click here</span> to view.', $searchResult['message']);
123  $this->assertCount (1, $searchResult['matchedModels']);
124  try
125  {
126  $dedupeRules->searchForDuplicateModels('annualRevenue', '123456');
127  $this->fail();
128  }
129  catch (NotImplementedException $exception)
130  {
131  $this->assertEquals('There is no search callback defined for attribute: annualRevenue', $exception->getMessage());
132  }
133  }
134  }
135 ?>
static getByUsername($username)
Definition: User.php:49
Generated on Mon Jul 6 2020 07:10:31
Account Suspended
Account Suspended
This Account has been suspended.
Contact your hosting provider for more information.