EntityIriParserTest   A
last analyzed

Complexity

Total Complexity 4

Size/Duplication

Total Lines 35
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 4

Importance

Changes 0
Metric Value
wmc 4
lcom 0
cbo 4
dl 0
loc 35
rs 10
c 0
b 0
f 0

4 Methods

Rating   Name   Duplication   Size   Complexity  
A testParse() 0 5 1
A entityIriProvider() 0 6 1
A testParseWithException() 0 6 1
A invalidEntityIriProvider() 0 6 1
1
<?php
2
3
namespace PPP\Wikidata\ValueFormatters\JsonLd\Entity;
4
5
use Wikibase\DataModel\Entity\BasicEntityIdParser;
6
use Wikibase\DataModel\Entity\EntityId;
7
use Wikibase\DataModel\Entity\ItemId;
8
use Wikibase\DataModel\Entity\PropertyId;
9
10
/**
11
 * @covers PPP\Wikidata\ValueFormatters\JsonLd\Entity\EntityIriParser
12
 *
13
 * @licence AGPLv3+
14
 * @author Thomas Pellissier Tanon
15
 */
16
class EntityIriParserTest extends \PHPUnit_Framework_TestCase {
17
18
	/**
19
	 * @dataProvider entityIriProvider
20
	 */
21
	public function testParse($iri, EntityId $expected) {
22
		$parser = new EntityIriParser(new BasicEntityIdParser());
23
24
		$this->assertEquals($expected, $parser->parse($iri));
25
	}
26
27
	public function entityIriProvider() {
28
		return array(
29
			array('http://www.wikidata.org/entity/q1', new ItemId('q1')),
30
			array('https://www.wikidata.org/entity/P1', new PropertyId('P1'))
31
		);
32
	}
33
34
	/**
35
	 * @dataProvider invalidEntityIriProvider
36
	 */
37
	public function testParseWithException($badIri) {
38
		$parser = new EntityIriParser(new BasicEntityIdParser());
39
40
		$this->setExpectedException('Wikibase\DataModel\Entity\EntityIdParsingException');
41
		$parser->parse($badIri);
42
	}
43
44
	public function invalidEntityIriProvider() {
45
		return array(
46
			array('http://foo.org'),
47
			array('https://www.wikidata.org/entity/foo')
48
		);
49
	}
50
}
51