CalendarModelParserTest::requireDataValue()   A
last analyzed

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
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
 * @license GPL-2.0+
15
 * @author Addshore
16
 * @author Thiemo Kreuz
17
 */
18
class CalendarModelParserTest extends ValueParserTestBase {
19
20
	/**
21
	 * @see ValueParserTestBase::getInstance
22
	 *
23
	 * @return CalendarModelParser
24
	 */
25
	protected function getInstance() {
26
		$options = new ParserOptions();
27
28
		$options->setOption( CalendarModelParser::OPT_CALENDAR_MODEL_URIS, array(
29
			'Localized' => 'Unlocalized',
30
		) );
31
32
		return new CalendarModelParser( $options );
33
	}
34
35
	/**
36
	 * @see ValueParserTestBase::requireDataValue
37
	 *
38
	 * @return bool
39
	 */
40
	protected function requireDataValue() {
41
		return false;
42
	}
43
44
	/**
45
	 * @see ValueParserTestBase::validInputProvider
46
	 */
47
	public function validInputProvider() {
48
		$gregorian = 'http://www.wikidata.org/entity/Q1985727';
49
		$julian = 'http://www.wikidata.org/entity/Q1985786';
50
51
		return array(
52
			array( '', $gregorian ),
53
			array( 'Gregorian', $gregorian ),
54
			array( 'Julian', $julian ),
55
56
			// White space
57
			array( ' ', $gregorian ),
58
			array( ' Gregorian ', $gregorian ),
59
			array( ' Julian ', $julian ),
60
61
			// Capitalization
62
			array( 'GreGOrIAN', $gregorian ),
63
			array( 'julian', $julian ),
64
			array( 'JULIAN', $julian ),
65
66
			// See https://en.wikipedia.org/wiki/Gregorian_calendar
67
			array( 'Western', $gregorian ),
68
			array( 'Christian', $gregorian ),
69
70
			// URIs
71
			array( 'http://www.wikidata.org/entity/Q1985727', $gregorian ),
72
			array( 'http://www.wikidata.org/entity/Q1985786', $julian ),
73
74
			// Via OPT_CALENDAR_MODEL_URIS
75
			array( 'Localized', 'Unlocalized' ),
76
		);
77
	}
78
79
	/**
80
	 * @see ValueParserTestBase::invalidInputProvider
81
	 */
82
	public function invalidInputProvider() {
83
		return array(
84
			array( null ),
85
			array( true ),
86
			array( 1 ),
87
			array( 'foobar' ),
88
89
			// Do not confuse Greece with Gregorian
90
			array( 'gr' ),
91
			array( 'gre' ),
92
93
			// Do not confuse July with Julian
94
			array( 'Jul' ),
95
			array( 'J' ),
96
97
			// Strict comparison for URIs and strings given via OPT_CALENDAR_MODEL_URIS
98
			array( 'http://www.wikidata.org/entity/Q1985727 ' ),
99
			array( 'Localized ' ),
100
			array( 'localized' ),
101
			array( 'LOCALIZED' ),
102
		);
103
	}
104
105
}
106