SiteLinkSerializationRoundtripTest   A
last analyzed

Complexity

Total Complexity 2

Size/Duplication

Total Lines 37
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 10

Importance

Changes 0
Metric Value
wmc 2
c 0
b 0
f 0
lcom 0
cbo 10
dl 0
loc 37
rs 10

2 Methods

Rating   Name   Duplication   Size   Complexity  
A testSiteLinkSerializationRoundtrips() 0 11 1
A siteLinkProvider() 0 18 1
1
<?php
2
3
namespace Tests\Wikibase\DataModel;
4
5
use DataValues\Deserializers\DataValueDeserializer;
6
use DataValues\Serializers\DataValueSerializer;
7
use PHPUnit\Framework\TestCase;
8
use Wikibase\DataModel\DeserializerFactory;
9
use Wikibase\DataModel\Entity\BasicEntityIdParser;
10
use Wikibase\DataModel\Entity\ItemId;
11
use Wikibase\DataModel\SerializerFactory;
12
use Wikibase\DataModel\SiteLink;
13
14
/**
15
 * @license GPL-2.0-or-later
16
 * @author Thomas Pellissier Tanon
17
 */
18
class SiteLinkSerializationRoundtripTest extends TestCase {
19
20
	/**
21
	 * @dataProvider siteLinkProvider
22
	 */
23
	public function testSiteLinkSerializationRoundtrips( SiteLink $siteLink ) {
24
		$serializerFactory = new SerializerFactory( new DataValueSerializer() );
25
		$deserializerFactory = new DeserializerFactory(
26
			new DataValueDeserializer(),
27
			new BasicEntityIdParser()
28
		);
29
30
		$serialization = $serializerFactory->newSiteLinkSerializer()->serialize( $siteLink );
31
		$newSiteLink = $deserializerFactory->newSiteLinkDeserializer()->deserialize( $serialization );
32
		$this->assertEquals( $siteLink, $newSiteLink );
33
	}
34
35
	public function siteLinkProvider() {
36
		return [
37
			[
38
				new SiteLink( 'enwiki', 'Nyan Cat' )
39
			],
40
			[
41
				new SiteLink( 'enwiki', 'Nyan Cat', [
42
					new ItemId( 'Q42' )
43
				] )
44
			],
45
			[
46
				new SiteLink( 'frwikisource', 'Nyan Cat', [
47
					new ItemId( 'Q42' ),
48
					new ItemId( 'q43' )
49
				] )
50
			]
51
		];
52
	}
53
54
}
55