Account Suspended
Account Suspended
This Account has been suspended.
Contact your hosting provider for more information.
 All Data Structures Functions Variables Pages
GeneralCacheTest.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 
40  class GeneralCacheTest extends BaseTest
41  {
42  public function tearDown()
43  {
44  GeneralCache::forgetAll();
45  }
46 
47  public function testCanSetNullValueToCache()
48  {
49  // If memcache is off this test will fail because memcache will not cache null values.
50  if (MEMCACHE_ON)
51  {
52  GeneralCache::cacheEntry('somethingForTesting', null);
53  $value = GeneralCache::getEntry('somethingForTesting');
54  $this->assertNull($value);
55  }
56  }
57 
61  public function testCanSetValueToCache()
62  {
63  if (MEMCACHE_ON)
64  {
65  GeneralCache::cacheEntry('somethingForTesting2', 5);
66  $value = GeneralCache::getEntry('somethingForTesting2');
67  $this->assertEquals(5, $value);
68  }
69  }
70 
74  public function testForgetEntry()
75  {
76  if (MEMCACHE_ON)
77  {
78  GeneralCache::cacheEntry('somethingForTesting3', 10);
79  $value = GeneralCache::getEntry('somethingForTesting3');
80  $this->assertEquals(10, $value);
81 
82  GeneralCache::forgetEntry('somethingForTesting3');
83  try
84  {
85  GeneralCache::getEntry('somethingForTesting3');
86  $this->fail('NotFoundException exception is not thrown.');
87  }
88  catch (NotFoundException $e)
89  {
90  $this->assertTrue(true);
91  }
92  }
93  }
94 
98  public function testForgetAll()
99  {
100  if (MEMCACHE_ON)
101  {
102  GeneralCache::forgetAll();
103  try
104  {
105  GeneralCache::getEntry('somethingForTesting2');
106  $this->fail('NotFoundException exception is not thrown.');
107  }
108  catch (NotFoundException $e)
109  {
110  $this->assertTrue(true);
111  }
112  }
113  }
114 
115  public function testForgetAllNotDeleteOtherDataFromCache()
116  {
118  {
119  GeneralCache::cacheEntry('somethingForTesting4', 34);
120  $value = GeneralCache::getEntry('somethingForTesting4');
121  $this->assertEquals(34, $value);
122 
123  $originalAdditionalStringForCachePrefix = GeneralCache::getAdditionalStringForCachePrefix();
125  GeneralCache::cacheEntry('somethingForTesting4', 43);
126  $value = GeneralCache::getEntry('somethingForTesting4');
127  $this->assertEquals(43, $value);
128 
129  GeneralCache::forgetAll();
130  try
131  {
132  GeneralCache::getEntry('somethingForTesting4');
133  $this->fail('NotFoundException exception is not thrown.');
134  }
135  catch (NotFoundException $e)
136  {
137  $this->assertTrue(true);
138  }
139 
140  GeneralCache::setAdditionalStringForCachePrefix($originalAdditionalStringForCachePrefix);
141  $value = GeneralCache::getEntry('somethingForTesting4');
142  $this->assertEquals(34, $value);
143  }
144  }
145 
150  {
151  GeneralCache::getEntry("SomethingThatDoesNotExistForSure");
152  }
153 
154  public function testCacheBoolean()
155  {
156  GeneralCache::cacheEntry('ABoolean', true);
157  $boolean = GeneralCache::getEntry('ABoolean');
158  $this->assertTrue($boolean);
159  }
160 
161  public function testGetEntryReturnsDefault()
162  {
163  $default = "DEFAULT";
164  $entry = GeneralCache::getEntry("SomethingThatDoesNotExistForSure", $default);
165  $this->assertEquals($default, $entry);
166  }
167 
168  public function testGetEntryReturnsDefaultAfterCachedOnce()
169  {
170  $default = "DEFAULT";
171  $entry = GeneralCache::getEntry("SomethingThatDoesNotExistForSure", $default, true);
172  $this->assertEquals($default, $entry);
173 
174  // get it again but without a default value this time
175  $entry = GeneralCache::getEntry("SomethingThatDoesNotExistForSure");
176  $this->assertEquals($default, $entry);
177  }
178  }
179 ?>
static setAdditionalStringForCachePrefix($prefix= '')
Definition: ZurmoCache.php:156
static supportsAndAllowsPhpCaching()
Definition: ZurmoCache.php:181
static getAdditionalStringForCachePrefix()
Definition: ZurmoCache.php:165
static supportsAndAllowsMemcache()
Definition: ZurmoCache.php:173
testGetEntryThrowsNotFoundExceptionOnMissing()
Generated on Thu Jul 9 2020 07:10:29
Account Suspended
Account Suspended
This Account has been suspended.
Contact your hosting provider for more information.