Account Suspended
Account Suspended
This Account has been suspended.
Contact your hosting provider for more information.
 All Data Structures Functions Variables Pages
RedBeanModelMemberIndexMetadataAdapterTest.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  $super = User::getByUsername('super');
44  Yii::app()->user->userModel = $super;
45  }
46 
47  public function testResolveIndexNameNonUnique()
48  {
49  $indexName = 'ThisIsAnIndex';
51  $this->assertNotEmpty($resolvedIndexName);
52  $this->assertNotEquals($indexName, $resolvedIndexName);
53  }
54 
58  public function testResolveIndexNameUnique()
59  {
60  $indexName = 'ThisIsAUniqueIndex';
61  $resolvedIndexName = RedBeanModelMemberIndexMetadataAdapter::resolveRandomIndexName($indexName, true);
62  $this->assertNotEmpty($resolvedIndexName);
63  $this->assertNotEquals($indexName, $resolvedIndexName);
64  $this->assertContains('unique_', $resolvedIndexName);
65  }
66 
70  public function testResolveWithEmptyMetadata()
71  {
72  $indexMetadata = array();
73  $resolved = RedBeanModelMemberIndexMetadataAdapter::resolve($indexMetadata);
74  $this->assertFalse($resolved);
75  }
76 
80  public function testResolveWithEmptyMembers()
81  {
82  $indexMetadata = array('columns' => array());
83  $resolved = RedBeanModelMemberIndexMetadataAdapter::resolve($indexMetadata);
84  $this->assertFalse($resolved);
85  }
86 
91  {
92  $indexMetadata = array('columns' => 1234);
93  $resolved = RedBeanModelMemberIndexMetadataAdapter::resolve($indexMetadata);
94  $this->assertFalse($resolved);
95  }
96 
100  public function testResolveWithUniqueNotSet()
101  {
102  $indexMetadata = array('members' => array('memberOne'));
103  $resolved = RedBeanModelMemberIndexMetadataAdapter::resolve($indexMetadata);
104  $this->assertTrue($resolved);
105  $this->assertNotEmpty($indexMetadata);
106  $this->assertArrayHasKey('columns', $indexMetadata);
107  $this->assertCount(1, $indexMetadata['columns']);
108  $this->assertEquals('memberone', $indexMetadata['columns'][0]);
109  $this->assertArrayHasKey('unique', $indexMetadata);
110  $this->assertFalse($indexMetadata['unique']);
111  }
112 
116  public function testResolve()
117  {
118  $indexMetadata = array('members' => array('memberOne', 'memberTwo'), 'unique' => true);
119  $resolved = RedBeanModelMemberIndexMetadataAdapter::resolve($indexMetadata);
120  $this->assertTrue($resolved);
121  $this->assertNotEmpty($indexMetadata);
122  $this->assertArrayHasKey('columns', $indexMetadata);
123  $this->assertCount(2, $indexMetadata['columns']);
124  $this->assertEquals('memberone', $indexMetadata['columns'][0]);
125  $this->assertEquals('membertwo', $indexMetadata['columns'][1]);
126  $this->assertArrayHasKey('unique', $indexMetadata);
127  $this->assertTrue($indexMetadata['unique']);
128  }
129  }
130 ?>
static getByUsername($username)
Definition: User.php:49
Generated on Sat Jul 11 2020 07:10:25
Account Suspended
Account Suspended
This Account has been suspended.
Contact your hosting provider for more information.