This repository has been archived by the owner on Nov 26, 2017. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 298
/
cache.php
96 lines (88 loc) · 1.84 KB
/
cache.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
<?php
/**
* @package Joomla.Test
*
* @copyright Copyright (C) 2005 - 2012 Open Source Matters, Inc. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE
*/
/**
* Class to mock JCache.
*
* @package Joomla.Test
* @since 12.1
*/
class TestMockCache
{
/**
* Public cache to inject faux data.
*
* @var array
* @since 12.1
*/
public static $cache = array();
/**
* Creates and instance of the mock JApplication object.
*
* @param TestCase $test A test object.
* @param array $data Data to prime the cache with.
*
* @return object
*
* @since 12.1
*/
public static function create(TestCase $test, $data = array())
{
self::$cache = $data;
// Collect all the relevant methods in JConfig.
$methods = array(
'get',
'store',
);
// Create the mock.
$mockObject = $test->getMock(
'JCache',
$methods,
// Constructor arguments.
array(),
// Mock class name.
'',
// Call original constructor.
false
);
$test->assignMockCallbacks(
$mockObject,
array(
'get' => array(get_called_class(), 'mockGet'),
'store' => array(get_called_class(), 'mockStore'),
)
);
return $mockObject;
}
/**
* Callback for the cache get method.
*
* @param string $id The name of the cache key to retrieve.
*
* @return mixed The value of the key or null if it does not exist.
*
* @since 12.1
*/
public function mockGet($id)
{
return isset(self::$cache[$id]) ? self::$cache[$id] : null;
}
/**
* Callback for the cache get method.
*
* @param string $value The value to store.
* @param string $id The name of the cache key.
*
* @return mixed The value of the key or null if it does not exist.
*
* @since 12.1
*/
public function mockStore($value, $id)
{
self::$cache[$id] = $value;
}
}