Completed
Push — master ( 0bba95...d49286 )
by Bene
03:40
created

SnakListDeserializerTest::deserializableProvider()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Importance

Changes 2
Bugs 1 Features 0
Metric Value
c 2
b 1
f 0
dl 0
loc 3
rs 10
cc 1
eloc 2
nc 1
nop 0
1
<?php
2
3
namespace Tests\Wikibase\DataModel\Deserializers;
4
5
use Wikibase\DataModel\Deserializers\SnakListDeserializer;
6
use Wikibase\DataModel\Snak\PropertyNoValueSnak;
7
use Wikibase\DataModel\Snak\SnakList;
8
9
/**
10
 * @covers Wikibase\DataModel\Deserializers\SnakListDeserializer
11
 *
12
 * @licence GNU GPL v2+
13
 * @author Thomas Pellissier Tanon
14
 */
15
class SnakListDeserializerTest extends DeserializerBaseTest {
16
17
	public function buildDeserializer() {
18
		$snakDeserializerMock = $this->getMock( 'Deserializers\Deserializer' );
19
20
		$snakDeserializerMock->expects( $this->any() )
21
			->method( 'deserialize' )
22
			->with( $this->equalTo( array(
23
					'snaktype' => 'novalue',
24
					'property' => 'P42'
25
			) ) )
26
			->will( $this->returnValue( new PropertyNoValueSnak( 42 ) ) );
27
28
		return new SnakListDeserializer( $snakDeserializerMock );
29
	}
30
31
	public function deserializableProvider() {
32
		return array( array() );
33
	}
34
35
	public function nonDeserializableProvider() {
36
		return array(
37
			array(
38
				42
39
			),
40
			array(
41
				array(
42
					'id' => 'P10'
43
				)
44
			),
45
			array(
46
				array(
47
					'snaktype' => '42value'
48
				)
49
			),
50
		);
51
	}
52
53
	public function deserializationProvider() {
54
		return array(
55
			array(
56
				new SnakList(),
57
				array()
58
			),
59
			array(
60
				new SnakList( array(
61
					new PropertyNoValueSnak( 42 )
62
				) ),
63
				array(
64
					'P42' => array(
65
						array(
66
							'snaktype' => 'novalue',
67
							'property' => 'P42'
68
						)
69
					)
70
				)
71
			),
72
		);
73
	}
74
75
}
76