DispatchingSimplifierTest   A
last analyzed

Complexity

Total Complexity 5

Size/Duplication

Total Lines 33
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 6

Importance

Changes 3
Bugs 0 Features 1
Metric Value
wmc 5
c 3
b 0
f 1
lcom 1
cbo 6
dl 0
loc 33
rs 10

5 Methods

Rating   Name   Duplication   Size   Complexity  
A testImplementsNodeSimplifierInterface() 0 3 1
A testIsNodeSimplifierForReturnsTrue() 0 3 1
A testIsNodeSimplifierForReturnsFalse() 0 3 1
A buildSimplifier() 0 5 1
A testSimplification() 0 12 1
1
<?php
2
3
namespace PPP\Module\TreeSimplifier;
4
5
use PPP\DataModel\MissingNode;
6
use PPP\DataModel\ResourceListNode;
7
use PPP\DataModel\StringResourceNode;
8
use PPP\DataModel\UnionNode;
9
10
/**
11
 * @covers PPP\Module\TreeSimplifier\DispatchingSimplifier
12
 *
13
 * @licence MIT
14
 * @author Thomas Pellissier Tanon
15
 */
16
class DispatchingSimplifierTest extends \PHPUnit_Framework_TestCase {
17
18
	protected function buildSimplifier() {
19
		return new DispatchingSimplifier(array(
20
			new SetOperatorNodeSimplifier()
21
		));
22
	}
23
24
	public function testImplementsNodeSimplifierInterface() {
25
		$this->assertInstanceOf('PPP\Module\TreeSimplifier\NodeSimplifier', $this->buildSimplifier());
26
	}
27
28
	public function testIsNodeSimplifierForReturnsTrue() {
29
		$this->assertTrue($this->buildSimplifier()->isSimplifierFor(new UnionNode(array())));
30
	}
31
32
	public function testIsNodeSimplifierForReturnsFalse() {
33
		$this->assertFalse($this->buildSimplifier()->isSimplifierFor(new MissingNode()));
34
	}
35
36
	public function testSimplification() {
37
		$this->assertEquals(
38
			new ResourceListNode(array(
39
				new StringResourceNode('foo'),
40
				new StringResourceNode('bar')
41
			)),
42
			$this->buildSimplifier()->simplify(new UnionNode(array(
43
				new ResourceListNode(array(new StringResourceNode('foo'))),
44
				new ResourceListNode(array(new StringResourceNode('bar')))
45
			)))
46
		);
47
	}
48
}
49