Completed
Pull Request — master (#134)
by no
07:39 queued 01:13
created

CalendarModelParserTest::getParserClass()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
c 1
b 0
f 0
dl 0
loc 3
rs 10
cc 1
eloc 2
nc 1
nop 0
1
<?php
2
3
namespace ValueParsers\Test;
4
5
use ValueParsers\CalendarModelParser;
6
use ValueParsers\ParserOptions;
7
8
/**
9
 * @covers ValueParsers\CalendarModelParser
10
 *
11
 * @group DataValue
12
 * @group DataValueExtensions
13
 *
14
 * @author Addshore
15
 * @author Thiemo Mättig
16
 */
17
class CalendarModelParserTest extends ValueParserTestBase {
18
19
	/**
20
	 * @see ValueParserTestBase::getInstance
21
	 *
22
	 * @return CalendarModelParser
23
	 */
24
	protected function getInstance() {
25
		$options = new ParserOptions();
26
27
		$options->setOption( CalendarModelParser::OPT_CALENDAR_MODEL_URIS, array(
28
			'Localized' => 'Unlocalized',
29
		) );
30
31
		return new CalendarModelParser( $options );
32
	}
33
34
	/**
35
	 * @see ValueParserTestBase::requireDataValue
36
	 *
37
	 * @return bool
38
	 */
39
	protected function requireDataValue() {
40
		return false;
41
	}
42
43
	/**
44
	 * @see ValueParserTestBase::validInputProvider
45
	 */
46
	public function validInputProvider() {
47
		$gregorian = 'http://www.wikidata.org/entity/Q1985727';
48
		$julian = 'http://www.wikidata.org/entity/Q1985786';
49
50
		return array(
51
			array( '', $gregorian ),
52
			array( 'Gregorian', $gregorian ),
53
			array( 'Julian', $julian ),
54
55
			// White space
56
			array( ' ', $gregorian ),
57
			array( ' Gregorian ', $gregorian ),
58
			array( ' Julian ', $julian ),
59
60
			// Capitalization
61
			array( 'GreGOrIAN', $gregorian ),
62
			array( 'julian', $julian ),
63
			array( 'JULIAN', $julian ),
64
65
			// See https://en.wikipedia.org/wiki/Gregorian_calendar
66
			array( 'Western', $gregorian ),
67
			array( 'Christian', $gregorian ),
68
69
			// URIs
70
			array( 'http://www.wikidata.org/entity/Q1985727', $gregorian ),
71
			array( 'http://www.wikidata.org/entity/Q1985786', $julian ),
72
73
			// Via OPT_CALENDAR_MODEL_URIS
74
			array( 'Localized', 'Unlocalized' ),
75
		);
76
	}
77
78
	/**
79
	 * @see ValueParserTestBase::invalidInputProvider
80
	 */
81
	public function invalidInputProvider() {
82
		return array(
83
			array( null ),
84
			array( true ),
85
			array( 1 ),
86
			array( 'foobar' ),
87
88
			// Do not confuse Greece with Gregorian
89
			array( 'gr' ),
90
			array( 'gre' ),
91
92
			// Do not confuse July with Julian
93
			array( 'Jul' ),
94
			array( 'J' ),
95
96
			// Strict comparison for URIs and strings given via OPT_CALENDAR_MODEL_URIS
97
			array( 'http://www.wikidata.org/entity/Q1985727 ' ),
98
			array( 'Localized ' ),
99
			array( 'localized' ),
100
			array( 'LOCALIZED' ),
101
		);
102
	}
103
104
}
105