ItemListTest   A
last analyzed

Complexity

Total Complexity 3

Size/Duplication

Total Lines 54
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 4

Importance

Changes 0
Metric Value
wmc 3
lcom 1
cbo 4
dl 0
loc 54
rs 10
c 0
b 0
f 0

3 Methods

Rating   Name   Duplication   Size   Complexity  
A testSetAndGetElements() 0 18 1
A testItemListElementWithNoOptionalFields() 0 14 1
A testItemListElementWithAllOptionalFields() 0 16 1
1
<?php
2
3
namespace Tests\Queryr\Resources\Builders;
4
5
use Queryr\Resources\ItemList;
6
use Queryr\Resources\ItemListElement;
7
use Wikibase\DataModel\Entity\ItemId;
8
9
/**
10
 * @covers Queryr\Resources\ItemList
11
 * @covers Queryr\Resources\ItemListElement
12
 *
13
 * @licence GNU GPL v2+
14
 * @author Jeroen De Dauw < [email protected] >
15
 */
16
class ItemListTest extends \PHPUnit_Framework_TestCase {
17
18
	public function testSetAndGetElements() {
19
		$items = [
20
			( new ItemListElement() )
21
				->setItemId( new ItemId( 'Q1' ) )
22
				->setLastUpdate( '2014-08-16T19:52:04Z' )
23
				->setWikidataPageUrl( 'https://www.wikidata.org/entity/Q1' )
24
				->setQueryrApiUrl( 'http://api.queryr.com/items/Q1' ),
25
26
			( new ItemListElement() )
27
				->setItemId( new ItemId( 'Q2' ) )
28
				->setLastUpdate( '2014-05-30T16:31:27Z' )
29
				->setWikidataPageUrl( 'https://www.wikidata.org/entity/Q2' )
30
				->setQueryrApiUrl( 'http://api.queryr.com/items/Q2' )
31
		];
32
33
		$list = new ItemList( $items );
34
		$this->assertSame( $items, $list->getElements() );
35
	}
36
37
	public function testItemListElementWithNoOptionalFields() {
38
		$item = ( new ItemListElement() )
39
			->setItemId( new ItemId( 'Q1' ) )
40
			->setLastUpdate( '2014-08-16T19:52:04Z' )
41
			->setWikidataPageUrl( 'https://www.wikidata.org/entity/Q1' )
42
			->setQueryrApiUrl( 'http://api.queryr.com/items/Q1' );
43
44
		$this->assertEquals( new ItemId( 'Q1' ), $item->getItemId() );
45
		$this->assertSame( '2014-08-16T19:52:04Z', $item->getLastUpdateTime() );
46
		$this->assertSame( 'https://www.wikidata.org/entity/Q1', $item->getWikidataUrl() );
47
		$this->assertSame( 'http://api.queryr.com/items/Q1', $item->getQueryrApiUrl() );
48
		$this->assertNull( $item->getLabel() );
49
		$this->assertNull( $item->getWikipediaPageUrl() );
50
	}
51
52
	public function testItemListElementWithAllOptionalFields() {
53
		$item = ( new ItemListElement() )
54
			->setItemId( new ItemId( 'Q1' ) )
55
			->setLastUpdate( '2014-08-16T19:52:04Z' )
56
			->setWikidataPageUrl( 'https://www.wikidata.org/entity/Q1' )
57
			->setQueryrApiUrl( 'http://api.queryr.com/items/Q1' )
58
			->setLabel( 'kittens' )
59
			->setWikipediaPageUrl( 'http://its-a-wikipedia' );
60
61
		$this->assertEquals( new ItemId( 'Q1' ), $item->getItemId() );
62
		$this->assertSame( '2014-08-16T19:52:04Z', $item->getLastUpdateTime() );
63
		$this->assertSame( 'https://www.wikidata.org/entity/Q1', $item->getWikidataUrl() );
64
		$this->assertSame( 'http://api.queryr.com/items/Q1', $item->getQueryrApiUrl() );
65
		$this->assertSame( 'kittens', $item->getLabel() );
66
		$this->assertSame( 'http://its-a-wikipedia', $item->getWikipediaPageUrl() );
67
	}
68
69
}
70