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

TestFactory::newInstance()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 3

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 3
rs 10
c 0
b 0
f 0
cc 1
nc 1
nop 0
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
}