PropertySetStatementFilterTest   A
last analyzed

Complexity

Total Complexity 2

Size/Duplication

Total Lines 28
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 4

Importance

Changes 0
Metric Value
wmc 2
lcom 0
cbo 4
dl 0
loc 28
rs 10
c 0
b 0
f 0

2 Methods

Rating   Name   Duplication   Size   Complexity  
A testIsMatch() 0 4 1
A statementProvider() 0 16 1
1
<?php
2
3
namespace Wikibase\DataModel\Services\Tests\Statement\Filter;
4
5
use PHPUnit\Framework\TestCase;
6
use Wikibase\DataModel\Services\Statement\Filter\PropertySetStatementFilter;
7
use Wikibase\DataModel\Snak\PropertyNoValueSnak;
8
use Wikibase\DataModel\Statement\Statement;
9
10
/**
11
 * @covers \Wikibase\DataModel\Services\Statement\Filter\PropertySetStatementFilter
12
 *
13
 * @license GPL-2.0-or-later
14
 * @author Thiemo Kreuz
15
 */
16
class PropertySetStatementFilterTest extends TestCase {
17
18
	/**
19
	 * @dataProvider statementProvider
20
	 */
21
	public function testIsMatch( Statement $statement, $propertyIds, $expected ) {
22
		$filter = new PropertySetStatementFilter( $propertyIds );
23
		$this->assertSame( $expected, $filter->statementMatches( $statement ) );
24
	}
25
26
	public function statementProvider() {
27
		$p1 = new Statement( new PropertyNoValueSnak( 1 ) );
28
		$p2 = new Statement( new PropertyNoValueSnak( 2 ) );
29
30
		return [
31
			[ $p1, null, false ],
32
			[ $p1, [], false ],
33
			[ $p1, 'P1', true ],
34
			[ $p1, 'P11', false ],
35
			[ $p2, 'P1', false ],
36
			[ $p2, 'P2', true ],
37
			[ $p1, 'P2', false ],
38
			[ $p1, [ 'P1' ], true ],
39
			[ $p1, [ 'P2', 'P1' ], true ],
40
		];
41
	}
42
43
}
44