snakListProvider()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 25

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 25
rs 9.52
c 0
b 0
f 0
cc 1
nc 1
nop 0
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\SerializerFactory;
11
use Wikibase\DataModel\Snak\PropertyNoValueSnak;
12
use Wikibase\DataModel\Snak\PropertySomeValueSnak;
13
use Wikibase\DataModel\Snak\SnakList;
14
15
/**
16
 * @license GPL-2.0-or-later
17
 * @author Jeroen De Dauw < [email protected] >
18
 * @author Thomas Pellissier Tanon
19
 */
20
class SnakListSerializationRoundtripTest extends TestCase {
21
22
	/**
23
	 * @dataProvider snakListProvider
24
	 */
25
	public function testSnakSerializationRoundtrips( SnakList $snaks ) {
26
		$serializerFactory = new SerializerFactory( new DataValueSerializer() );
27
		$deserializerFactory = new DeserializerFactory(
28
			new DataValueDeserializer(),
29
			new BasicEntityIdParser()
30
		);
31
32
		$serialization = $serializerFactory->newSnakListSerializer()->serialize( $snaks );
33
		$newSnaks = $deserializerFactory->newSnakListDeserializer()->deserialize( $serialization );
34
		$this->assertEquals( $snaks, $newSnaks );
35
	}
36
37
	public function snakListProvider() {
38
		return [
39
			[
40
				new SnakList( [] )
41
			],
42
			[
43
				new SnakList( [
44
					new PropertyNoValueSnak( 42 )
45
				] )
46
			],
47
			[
48
				new SnakList( [
49
					new PropertyNoValueSnak( 42 ),
50
					new PropertyNoValueSnak( 43 )
51
				] )
52
			],
53
			[
54
				new SnakList( [
55
					new PropertyNoValueSnak( 42 ),
56
					new PropertySomeValueSnak( 42 ),
57
					new PropertyNoValueSnak( 43 ),
58
				] )
59
			],
60
		];
61
	}
62
63
}
64