Completed
Pull Request — master (#47)
by no
04:20 queued 02:14
created

invalidConstructorArgumentsProvider()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 14
Code Lines 12

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 1
Metric Value
c 1
b 0
f 1
dl 0
loc 14
rs 9.4285
cc 1
eloc 12
nc 1
nop 0
1
<?php
2
3
namespace DataValues\Tests;
4
5
use DataValues\MonolingualTextValue;
6
7
/**
8
 * @covers DataValues\MonolingualTextValue
9
 *
10
 * @since 0.1
11
 *
12
 * @group DataValue
13
 * @group DataValueExtensions
14
 *
15
 * @license GPL-2.0+
16
 * @author Jeroen De Dauw < [email protected] >
17
 */
18
class MonolingualTextValueTest extends DataValueTest {
19
20
	/**
21
	 * @see DataValueTest::getClass
22
	 *
23
	 * @return string
24
	 */
25
	public function getClass() {
26
		return 'DataValues\MonolingualTextValue';
27
	}
28
29
	public function validConstructorArgumentsProvider() {
30
		return array(
31
			array( 'en', 'foo' ),
32
			array( 'en', ' foo bar baz foo bar baz foo bar baz foo bar baz foo bar baz foo bar baz ' ),
33
		);
34
	}
35
36
	public function invalidConstructorArgumentsProvider() {
37
		return array(
38
			array( 42, null ),
39
			array( array(), null ),
40
			array( false, null ),
41
			array( true, null ),
42
			array( null, null ),
43
			array( 'en', 42 ),
44
			array( 'en', false ),
45
			array( 'en', array() ),
46
			array( 'en', null ),
47
			array( '', 'foo' ),
48
		);
49
	}
50
51
	public function testNewFromArray() {
52
		$array = array( 'text' => 'foo', 'language' => 'en' );
53
		$value = MonolingualTextValue::newFromArray( $array );
54
		$this->assertSame( $array, $value->getArrayValue() );
55
	}
56
57
	/**
58
	 * @dataProvider invalidArrayProvider
59
	 */
60
	public function testNewFromArrayWithInvalidArray( array $array ) {
61
		$this->setExpectedException( 'DataValues\IllegalValueException' );
62
		MonolingualTextValue::newFromArray( $array );
63
	}
64
65
	public function invalidArrayProvider() {
66
		return array(
67
			array( array() ),
68
			array( array( null ) ),
69
			array( array( '' ) ),
70
			array( array( 'en', 'foo' ) ),
71
			array( array( 'language' => 'en' ) ),
72
			array( array( 'text' => 'foo' ) ),
73
		);
74
	}
75
76
	public function testGetSortKey() {
77
		$value = new MonolingualTextValue( 'en', 'foo' );
78
		$this->assertSame( 'enfoo', $value->getSortKey() );
79
	}
80
81
	/**
82
	 * @dataProvider instanceProvider
83
	 */
84
	public function testGetText( MonolingualTextValue $text, array $arguments ) {
85
		$this->assertEquals( $arguments[1], $text->getText() );
86
	}
87
88
	/**
89
	 * @dataProvider instanceProvider
90
	 */
91
	public function testGetLanguageCode( MonolingualTextValue $text, array $arguments ) {
92
		$this->assertEquals( $arguments[0], $text->getLanguageCode() );
93
	}
94
95
}
96