All Data Structures Functions Variables Pages
CustomFieldsInstructionDataTest.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  SecurityTestHelper::createSuperAdmin();
43  }
44 
45  public function testSetAndGetMissingValuesToAdd()
46  {
47  $customFieldsInstructionData = new CustomFieldsInstructionData();
48  $this->assertEquals(array(), $customFieldsInstructionData->getMissingValuesToAdd());
49  $missingCustomFieldValues = array('a', 'b', 'c');
50  $customFieldsInstructionData->addMissingValuesByColumnName($missingCustomFieldValues, 'column_0');
51  $compareData = array('column_0' => array('a', 'b', 'c'));
52  $this->assertEquals($compareData, $customFieldsInstructionData->getMissingValuesToAdd());
53  }
54 
55  public function testSetAndGetMissingValuesToMap()
56  {
57  $customFieldsInstructionData = new CustomFieldsInstructionData();
58  $this->assertEquals(array(), $customFieldsInstructionData->getMissingValuesToMap());
59  $instructionsData[CustomFieldsInstructionData::ADD_MISSING_VALUES] = array('a', 'b', 'c');
60  $instructionsData[CustomFieldsInstructionData::MAP_MISSING_VALUES] = array('d', 'e', 'f');
61  $customFieldsInstructionData->addByInstructionsDataAndColumnName($instructionsData, 'column_0');
62  $compareData = array('column_0' => array('a', 'b', 'c'));
63  $this->assertEquals($compareData, $customFieldsInstructionData->getMissingValuesToAdd());
64  $compareData = array('column_0' => array('d', 'e', 'f'));
65  $this->assertEquals($compareData, $customFieldsInstructionData->getMissingValuesToMap());
66  }
67 
68  public function testResolveForNewData()
69  {
70  $customFieldsInstructionData = new CustomFieldsInstructionData();
71  $instructionsData[CustomFieldsInstructionData::ADD_MISSING_VALUES] = array('a', 'b', 'c');
72  $instructionsData[CustomFieldsInstructionData::MAP_MISSING_VALUES] = array('d' => 'dx', 'e' => 'ex', 'f' => 'fx');
73  $customFieldsInstructionData->addByInstructionsDataAndColumnName($instructionsData, 'column_0');
74 
75  $newCustomFieldsInstructionData = new CustomFieldsInstructionData();
76  $instructionsData[CustomFieldsInstructionData::ADD_MISSING_VALUES] = array('a2', 'b', 'c2');
77  $instructionsData[CustomFieldsInstructionData::MAP_MISSING_VALUES] = array('d2' => 'd2x', 'e' => 'ex', 'f2' => 'f2x');
78  $newCustomFieldsInstructionData->addByInstructionsDataAndColumnName($instructionsData, 'column_0');
79 
80  $customFieldsInstructionData->resolveForNewData($newCustomFieldsInstructionData);
81  $compareData = array('column_0' => array('a', 'b', 'c', 'a2', 'c2'));
82  $this->assertEquals($compareData, $customFieldsInstructionData->getMissingValuesToAdd());
83  $compareData = array('column_0' => array('d' => 'dx', 'd2' => 'd2x', 'e' => 'ex', 'f' => 'fx', 'f2' => 'f2x'));
84  $this->assertEquals($compareData, $customFieldsInstructionData->getMissingValuesToMap());
85 
86  $this->assertTrue($customFieldsInstructionData->hasDataByColumnName('column_0'));
87  $this->assertFalse($customFieldsInstructionData->hasDataByColumnName('column_1'));
88  $compareData = array(CustomFieldsInstructionData::ADD_MISSING_VALUES => array('a', 'b', 'c', 'a2', 'c2'),
89  CustomFieldsInstructionData::MAP_MISSING_VALUES => array('d' => 'dx', 'd2' => 'd2x',
90  'e' => 'ex', 'f' => 'fx',
91  'f2' => 'f2x'));
92  $this->assertEquals($compareData, $customFieldsInstructionData->getDataByColumnName('column_0'));
93  }
94  }
95 ?>
Generated on Sun May 24 2020 07:10:32