Completed
Push — 2.0-dev ( 13430b...59c481 )
by George
07:19
created

ApcTest::setUp()   B

Complexity

Conditions 2
Paths 6

Size

Total Lines 25
Code Lines 13

Duplication

Lines 25
Ratio 100 %

Importance

Changes 6
Bugs 0 Features 1
Metric Value
c 6
b 0
f 1
dl 25
loc 25
rs 8.8571
cc 2
eloc 13
nc 6
nop 0
1
<?php
2
/**
3
 * @copyright  Copyright (C) 2005 - 2015 Open Source Matters, Inc. All rights reserved.
4
 * @license    GNU General Public License version 2 or later; see LICENSE
5
 */
6
7
namespace Joomla\Cache\Tests;
8
9
use Joomla\Cache;
10
11
/**
12
 * Tests for the Joomla\Cache\Apc class.
13
 *
14
 * @since  1.0
15
 */
16
class ApcTest extends CacheTest
17
{
18
	/**
19
	 * Tests for the correct Psr\Cache return values.
20
	 *
21
	 * @return  void
22
	 *
23
	 * @coversNothing
24
	 * @since   1.0
25
	 */
26
	public function testPsrCache()
27
	{
28
		$this->assertInternalType('boolean', $this->instance->clear(), 'Checking clear.');
29
		$this->assertInstanceOf('\Psr\Cache\CacheItemInterface', $this->instance->getItem('foo'), 'Checking getItem.');
30
		$this->assertInternalType('array', $this->instance->getItems(array('foo')), 'Checking getItems.');
31
		$this->assertInternalType('boolean', $this->instance->deleteItem('foo'), 'Checking deleteItem.');
32
		$this->assertInternalType('array', $this->instance->deleteItems(array('foo')), 'Checking deleteItems.');
33
34
		// Create a stub for the CacheItemInterface class.
35
		$stub = $this->getMockBuilder('\\Psr\\Cache\\CacheItemInterface')
36
			->getMock();
37
38
		$stub->method('get')
39
			->willReturn('bar');
40
41
		$stub->method('getKey')
42
			->willReturn('foo');
43
44
		$this->assertInternalType('boolean', $this->instance->save($stub), 'Checking save.');
45
	}
46
47
	/**
48
	 * Tests the Joomla\Cache\Apc::clear method.
49
	 *
50
	 * @return  void
51
	 *
52
	 * @covers  Joomla\Cache\Apc::clear
53
	 * @since   1.0
54
	 */
55
	public function testClear()
56
	{
57
		$this->assertTrue($this->instance->clear());
58
	}
59
60
	/**
61
	 * Tests the Joomla\Cache\Apc::hasItem method.
62
	 *
63
	 * @return  void
64
	 *
65
	 * @covers  Joomla\Cache\Apc::hasItem
66
	 * @since   1.0
67
	 */
68
	public function testHasItem()
69
	{
70
		$this->assertTrue($this->instance->hasItem('foo'));
71
	}
72
73
	/**
74
	 * Tests the Joomla\Cache\Apc::get method.
75
	 *
76
	 * @return  void
77
	 *
78
	 * @covers  Joomla\Cache\Apc::get
79
	 * @since   1.0
80
	 */
81
	public function testGet()
82
	{
83
		$this->assertInstanceOf(
84
			'\Psr\Cache\CacheItemInterface',
85
			$this->instance->getItem('foo')
86
		);
87
	}
88
89
	/**
90
	 * Tests the Joomla\Cache\Apc::remove method.
91
	 *
92
	 * @return  void
93
	 *
94
	 * @covers  Joomla\Cache\Apc::remove
95
	 * @since   1.0
96
	 */
97
	public function testRemove()
98
	{
99
		$this->assertTrue($this->instance->deleteItem('foo'));
100
	}
101
102
	/**
103
	 * Tests the Joomla\Cache\Apc::save method.
104
	 *
105
	 * @return  void
106
	 *
107
	 * @covers  Joomla\Cache\Apc::save
108
	 * @since   1.0
109
	 */
110
	public function testSave()
111
	{
112
		// Create a stub for the CacheItemInterface class.
113
		$stub = $this->getMockBuilder('\\Psr\\Cache\\CacheItemInterface')
114
			->getMock();
115
116
		$stub->method('get')
117
			->willReturn('car');
118
119
		$stub->method('getKey')
120
			->willReturn('boo');
121
122
		$this->assertTrue($this->instance->save($stub));
123
	}
124
125
	/**
126
	 * Setup the tests.
127
	 *
128
	 * @return  void
129
	 *
130
	 * @since   1.0
131
	 */
132
	protected function setUp()
133
	{
134
		$this->cacheClass = 'Joomla\\Cache\\Apc';
135
136
		try
137
		{
138
			parent::setUp();
139
140
			// Create a stub for the CacheItemInterface class.
141
			$stub = $this->getMockBuilder('\\Psr\\Cache\\CacheItemInterface')
142
				->getMock();
143
144
			$stub->method('get')
145
				->willReturn('bar');
146
147
			$stub->method('getKey')
148
				->willReturn('foo');
149
150
			$this->instance->save($stub);
151
		}
152
		catch (\Exception $e)
153
		{
154
			$this->markTestSkipped();
155
		}
156
	}
157
}
158