Completed
Push — master ( a9f673...d16089 )
by Jeroen De
02:36
created

StatementGuidValidatorTest   A

Complexity

Total Complexity 10

Size/Duplication

Total Lines 103
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 2
Metric Value
wmc 10
lcom 1
cbo 2
dl 0
loc 103
rs 10

10 Methods

Rating   Name   Duplication   Size   Complexity  
A newStatementGuidValidator() 0 4 1
A testValidate() 0 6 1
A validateProvider() 0 10 1
A testValidateInvalid() 0 6 1
A validateInvalidProvider() 0 17 1
A testValidateFormat() 0 6 1
A testInvalidFormat() 0 6 1
A invalidFormatProvider() 0 7 1
A testValidateInvalidPrefixedId() 0 7 1
A validateInvalidPrefixedIdProvider() 0 6 1
1
<?php
2
3
namespace Wikibase\DataModel\Services\Tests\Statement;
4
5
use Wikibase\DataModel\Entity\BasicEntityIdParser;
6
use Wikibase\DataModel\Services\Statement\StatementGuidValidator;
7
8
/**
9
 * @covers Wikibase\DataModel\Services\Statement\StatementGuidValidator
10
 *
11
 * @licence GNU GPL v2+
12
 * @author Katie Filbert < [email protected] >
13
 */
14
class StatementGuidValidatorTest extends \PHPUnit_Framework_TestCase {
15
16
	protected function newStatementGuidValidator() {
17
		$entityIdParser = new BasicEntityIdParser();
18
		return new StatementGuidValidator( $entityIdParser );
19
	}
20
21
	/**
22
	 * @dataProvider validateProvider
23
	 */
24
	public function testValidate( $guid ) {
25
		$validator = $this->newStatementGuidValidator();
26
		$isValid = $validator->validate( $guid );
27
28
		$this->assertTrue( $isValid, "Assert that statement guid $guid is valid" );
29
	}
30
31
	public function validateProvider() {
32
		return array(
33
			array( 'q60$5083E43C-228B-4E3E-B82A-4CB20A22A3FB' ),
34
			array( 'q604192$5672A3B1-7693-4DF9-ADE8-8FC13E095604' ),
35
			array( 'q37$a212184b-434c-7e90-dd26-29eda5ee2580' ),
36
			array( 'Q60$5083E43C-228B-4E3E-B82A-4CB20A22A3FA' ),
37
			array( 'Q604192$5672A3B1-7693-4DF9-ADE8-8FC13E095603' ),
38
			array( 'Q37$a212184b-434c-7e90-dd26-29eda5ee2581' )
39
		);
40
	}
41
42
	/**
43
	 * @dataProvider validateInvalidProvider
44
	 */
45
	public function testValidateInvalid( $guid ) {
46
		$validator = $this->newStatementGuidValidator();
47
		$isValid = $validator->validate( $guid );
48
49
		$this->assertFalse( $isValid, "Assert that statement guid $guid is invalid" );
50
	}
51
52
	public function validateInvalidProvider() {
53
		return array(
54
			array( 'q60$5083E43C-228B-4E3E-B82A-4CB20A22A3F' ),
55
			array( 'q60$5083E43C-228B-4E3E-B82A-$4CB20A22A3FB' ),
56
			array( '$q60$5083E43C-228B-4E3E-B82A-4CB20A22A3FB' ),
57
			array( '5083E43C-228B-4E3E-B82A-4CB20A22A3FB' ),
58
			array( 9000 ),
59
			array( 'q604192$56723B1-7693-4DF9-ADE8-8FC13E095604' ),
60
			array( 'q604192$5672w3B1-693-4DF9-ADE8-8FC13E095604' ),
61
			array( 'q604192$5672w3B1-6935-4F9-ADE8-8FC13E095604' ),
62
			array( 'q604192$5672w3B1-6935-4DF9-AD8-8FC13E095604' ),
63
			array( 'q604192$5672w3B1-6935-4DF9-ADE8-8FC13E09604' ),
64
			array( 'q604192$5672A3B1--7693-4DF9-ADE8-8FC13E095604' ),
65
			array( 'foo' ),
66
			array( 'q12345' )
67
		);
68
	}
69
70
	/**
71
	 * @dataProvider validateProvider
72
	 */
73
	public function testValidateFormat( $guid ) {
74
		$validator = $this->newStatementGuidValidator();
75
		$isValid = $validator->validate( $guid );
76
77
		$this->assertTrue( $isValid, "Assert that statement guid $guid has a valid format." );
78
	}
79
80
	/**
81
	 * @dataProvider invalidFormatProvider
82
	 */
83
	public function  testInvalidFormat( $guid ) {
84
		$validator = $this->newStatementGuidValidator();
85
		$isValid = $validator->validate( $guid );
86
87
		$this->assertFalse( $isValid, "Assert that statement guid $guid has an invalid format." );
88
	}
89
90
	public function invalidFormatProvider() {
91
		return array(
92
			array( 'q12345' ),
93
			array( 'q$1$2$3' ),
94
			array( '$q60$5083E43C-228B-4E3E-B82A-4CB20A22A3FB' )
95
		);
96
	}
97
98
	/**
99
	 * @dataProvider validateInvalidPrefixedIdProvider
100
	 */
101
	public function testValidateInvalidPrefixedId( $guid ) {
102
		$validator = $this->newStatementGuidValidator();
103
104
		$isValid = $validator->validate( $guid );
105
106
		$this->assertFalse( $isValid, 'Assert that statement guid prefix is invalid' );
107
	}
108
109
	public function validateInvalidPrefixedIdProvider() {
110
		return array(
111
			array( '060$5083E43C-228B-4E3E-B82A-4CB20A22A3FB' ),
112
			array( 'a060$5083E43C-228B-4E3E-B82A-4CB20A22A3FB' )
113
		);
114
	}
115
116
}
117