2 /*********************************************************************************
3 * SugarCRM Community Edition is a customer relationship management program developed by
4 * SugarCRM, Inc. Copyright (C) 2004-2011 SugarCRM Inc.
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.
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
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
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.
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.
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 ********************************************************************************/
38 require_once('include/SugarCache/SugarCache.php');
40 class ExternalCacheAPITest extends Sugar_PHPUnit_Framework_TestCase
42 public function setUp()
44 $this->_cacheKey1 = 'test cache key 1 '.date("YmdHis");
45 $this->_cacheValue1 = 'test cache value 1'.date("YmdHis");
46 $this->_cacheKey2 = 'test cache key 2 '.date("YmdHis");
47 $this->_cacheValue2 = 'test cache value 2 '.date("YmdHis");
48 $this->_cacheKey3 = 'test cache key 3 '.date("YmdHis");
49 $this->_cacheValue3 = array(
50 'test cache value 3 key 1 '.date("YmdHis") => 'test cache value 3 value 1 '.date("YmdHis"),
51 'test cache value 3 key 2 '.date("YmdHis") => 'test cache value 3 value 2 '.date("YmdHis"),
52 'test cache value 3 key 3 '.date("YmdHis") => 'test cache value 3 value 3 '.date("YmdHis"),
56 public function tearDown()
58 // clear out the test cache if we haven't already
59 if ( sugar_cache_retrieve($this->_cacheKey1) )
60 sugar_cache_clear($this->_cacheKey1);
61 if ( sugar_cache_retrieve($this->_cacheKey2) )
62 sugar_cache_clear($this->_cacheKey2);
63 if ( sugar_cache_retrieve($this->_cacheKey3) )
64 sugar_cache_clear($this->_cacheKey3);
65 SugarCache::$isCacheReset = false;
68 public function testSugarCacheValidate()
70 $this->assertTrue(sugar_cache_validate());
73 public function testStoreAndRetrieve()
75 sugar_cache_put($this->_cacheKey1,$this->_cacheValue1);
76 sugar_cache_put($this->_cacheKey2,$this->_cacheValue2);
77 sugar_cache_put($this->_cacheKey3,$this->_cacheValue3);
80 sugar_cache_retrieve($this->_cacheKey1));
83 sugar_cache_retrieve($this->_cacheKey2));
86 sugar_cache_retrieve($this->_cacheKey3));
89 public function testStoreClearCacheKeyAndRetrieve()
91 sugar_cache_put($this->_cacheKey1,$this->_cacheValue1);
92 sugar_cache_put($this->_cacheKey2,$this->_cacheValue2);
93 sugar_cache_clear($this->_cacheKey1);
94 $this->assertNotEquals(
96 sugar_cache_retrieve($this->_cacheKey1));
99 sugar_cache_retrieve($this->_cacheKey2));
102 public function testStoreResetCacheAndRetrieve()
104 sugar_cache_put($this->_cacheKey1,$this->_cacheValue1);
105 sugar_cache_put($this->_cacheKey2,$this->_cacheValue2);
107 $this->assertNotEquals(
109 sugar_cache_retrieve($this->_cacheKey1));
110 $this->assertNotEquals(
112 sugar_cache_retrieve($this->_cacheKey2));
118 public function testRetrieveNonExistantKeyReturnsNull()
120 $this->assertNull(sugar_cache_retrieve('iamlookingforakeythatainthere'));