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

deserializableProvider()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 1 Features 0
Metric Value
c 1
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\ReferenceListDeserializer;
6
use Wikibase\DataModel\Reference;
7
use Wikibase\DataModel\ReferenceList;
8
9
/**
10
 * @covers Wikibase\DataModel\Deserializers\ReferenceListDeserializer
11
 *
12
 * @licence GNU GPL v2+
13
 * @author Thomas Pellissier Tanon
14
 */
15
class ReferenceListDeserializerTest extends DeserializerBaseTest {
16
17
	public function buildDeserializer() {
18
		$referenceDeserializerMock = $this->getMock( '\Deserializers\Deserializer' );
19
20
		$referenceDeserializerMock->expects( $this->any() )
21
			->method( 'deserialize' )
22
			->with( $this->equalTo( array(
23
				'hash' => 'da39a3ee5e6b4b0d3255bfef95601890afd80709',
24
				'snaks' => array()
25
			) ) )
26
			->will( $this->returnValue( new Reference() ) );
27
28
		return new ReferenceListDeserializer( $referenceDeserializerMock );
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
		);
41
	}
42
43
	/**
44
	 * @dataProvider deserializationProvider
45
	 */
46
	public function testDeserialization( $object, $serialization ) {
47
		$this->assertReferenceListEquals(
48
			$object,
49
			$this->buildDeserializer()->deserialize( $serialization )
50
		);
51
	}
52
53
	public function deserializationProvider() {
54
		return array(
55
			array(
56
				new ReferenceList(),
57
				array()
58
			),
59
			array(
60
				new ReferenceList( array(
61
					new Reference()
62
				) ),
63
				array(
64
					array(
65
						'hash' => 'da39a3ee5e6b4b0d3255bfef95601890afd80709',
66
						'snaks' => array()
67
					)
68
				)
69
			),
70
		);
71
	}
72
73
	/**
74
	 * @param ReferenceList $expected
75
	 * @param ReferenceList $actual
76
	 */
77
	public function assertReferenceListEquals( ReferenceList $expected, ReferenceList $actual ) {
78
		$this->assertTrue( $actual->equals( $expected ), 'The two ReferenceList are different' );
79
	}
80
81
}
82