Passed
Push — master ( 079aca...05e9ba )
by Jeroen De
04:40
created

TestFactory   A

Complexity

Total Complexity 3

Size/Duplication

Total Lines 33
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 3

Importance

Changes 0
Metric Value
wmc 3
lcom 0
cbo 3
dl 0
loc 33
rs 10
c 0
b 0
f 0

3 Methods

Rating   Name   Duplication   Size   Complexity  
A newInstance() 0 3 1
A newEntityDeserializer() 0 8 1
A newDataValueDeserializer() 0 16 1
1
<?php
2
3
declare( strict_types = 1 );
4
5
namespace Wikibase\JsonDumpReader\Tests;
6
7
use DataValues\BooleanValue;
8
use DataValues\Deserializers\DataValueDeserializer;
9
use DataValues\Geo\Values\GlobeCoordinateValue;
10
use DataValues\MonolingualTextValue;
11
use DataValues\MultilingualTextValue;
12
use DataValues\NumberValue;
13
use DataValues\QuantityValue;
14
use DataValues\StringValue;
15
use DataValues\TimeValue;
16
use DataValues\UnknownValue;
17
use Deserializers\Deserializer;
18
use Deserializers\DispatchableDeserializer;
19
use Wikibase\DataModel\DeserializerFactory;
20
use Wikibase\DataModel\Entity\BasicEntityIdParser;
21
use Wikibase\DataModel\Entity\EntityIdValue;
22
23
/**
24
 * @licence GNU GPL v2+
25
 * @author Jeroen De Dauw < [email protected] >
26
 */
27
class TestFactory {
28
29
	public static function newInstance(): self {
30
		return new self();
31
	}
32
33
	public function newEntityDeserializer(): DispatchableDeserializer {
34
		$factory = new DeserializerFactory(
35
			$this->newDataValueDeserializer(),
36
			new BasicEntityIdParser()
37
		);
38
39
		return $factory->newEntityDeserializer();
40
	}
41
42
	private function newDataValueDeserializer(): Deserializer {
43
		$dataValueClasses = [
44
			'boolean' => BooleanValue::class,
45
			'number' => NumberValue::class,
46
			'string' => StringValue::class,
47
			'unknown' => UnknownValue::class,
48
			'globecoordinate' => GlobeCoordinateValue::class,
49
			'monolingualtext' => MonolingualTextValue::class,
50
			'multilingualtext' => MultilingualTextValue::class,
51
			'quantity' => QuantityValue::class,
52
			'time' => TimeValue::class,
53
			'wikibase-entityid' => EntityIdValue::class,
54
		];
55
56
		return new DataValueDeserializer( $dataValueClasses );
57
	}
58
59
}