testGetHashFromForMatchableNamespace()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 23

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
nc 1
nop 0
dl 0
loc 23
rs 9.552
c 0
b 0
f 0
1
<?php
2
3
namespace SUC\Tests;
4
5
use SUC\CacheHelper;
6
use SUC\Options;
7
use Onoi\BlobStore\BlobStore;
8
use Title;
9
10
/**
11
 * @covers \SUC\CacheHelper
12
 * @group summary-cards
13
 *
14
 * @license GNU GPL v2+
15
 * @since   1.0
16
 *
17
 * @author mwjames
18
 */
19
class CacheHelperTest extends \PHPUnit_Framework_TestCase {
20
21
	public function testCanConstruct() {
22
23
		$blobStore = $this->getMockBuilder( BlobStore::class )
24
			->disableOriginalConstructor()
25
			->getMock();
26
27
		$options = $this->getMockBuilder( Options::class )
28
			->disableOriginalConstructor()
29
			->getMock();
30
31
		$this->assertInstanceOf(
32
			CacheHelper::class,
33
			new CacheHelper( $blobStore, $options )
34
		);
35
36
		$this->assertInstanceOf(
37
			CacheHelper::class,
38
			CacheHelper::newFromOptions( Options::newFromGlobals() )
39
		);
40
	}
41
42
	public function testGetHashFromForNonMatchableNamespace() {
43
44
		$blobStore = $this->getMockBuilder( BlobStore::class )
45
			->disableOriginalConstructor()
46
			->getMock();
47
48
		$options = new Options(
49
			array( 'enabledNamespaceWithTemplate' => array( NS_CATEGORY => 'Foo' ) )
50
		);
51
52
		$instance = new CacheHelper(
53
			$blobStore,
54
			$options
55
		);
56
57
		$this->assertInternalType(
58
			'string',
59
			$instance->getHashFrom( Title::newFromText( __METHOD__ ) )
60
		);
61
	}
62
63
	public function testGetHashFromForMatchableNamespace() {
64
65
		$blobStore = $this->getMockBuilder( BlobStore::class )
66
			->disableOriginalConstructor()
67
			->getMock();
68
69
		$options = new Options(
70
			array(
71
				'enabledNamespaceWithTemplate' => array( NS_CATEGORY => 'Foo' ),
72
				'backendParserCacheLifetime'   => 50
73
			)
74
		);
75
76
		$instance = new CacheHelper(
77
			$blobStore,
78
			$options
79
		);
80
81
		$this->assertInternalType(
82
			'string',
83
			$instance->getHashFrom( Title::newFromText( __METHOD__, NS_CATEGORY ) )
84
		);
85
	}
86
87
	public function testTitleFromTextForNonFragment() {
88
89
		$blobStore = $this->getMockBuilder( BlobStore::class )
90
			->disableOriginalConstructor()
91
			->getMock();
92
93
		$options = $this->getMockBuilder( Options::class )
94
			->disableOriginalConstructor()
95
			->getMock();
96
97
		$instance = new CacheHelper(
98
			$blobStore,
99
			$options
100
		);
101
102
		$this->assertInstanceOf(
103
			Title::class,
104
			$instance->newTitleFromText( __METHOD__ )
105
		);
106
	}
107
108
	public function testInvalidateCache() {
109
110
		$blobStore = $this->getMockBuilder( BlobStore::class )
111
			->disableOriginalConstructor()
112
			->getMock();
113
114
		$blobStore->expects( $this->once() )
115
			->method( 'delete' );
116
117
		$options = $this->getMockBuilder( Options::class )
118
			->disableOriginalConstructor()
119
			->getMock();
120
121
		$instance = new CacheHelper(
122
			$blobStore,
123
			$options
124
		);
125
126
		$this->assertInstanceOf(
127
			BlobStore::class,
128
			$instance->getBlobStore()
129
		);
130
131
		$instance->invalidateCache( Title::newFromText( __METHOD__ ) );
132
	}
133
134
}
135