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

ReferenceListDeserializerTest   A

Complexity

Total Complexity 6

Size/Duplication

Total Lines 67
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 4

Importance

Changes 2
Bugs 2 Features 0
Metric Value
wmc 6
c 2
b 2
f 0
lcom 0
cbo 4
dl 0
loc 67
rs 10

6 Methods

Rating   Name   Duplication   Size   Complexity  
A buildDeserializer() 0 13 1
A deserializableProvider() 0 3 1
A nonDeserializableProvider() 0 7 1
A testDeserialization() 0 6 1
A deserializationProvider() 0 19 1
A assertReferenceListEquals() 0 3 1
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