DispatchingSimplifierTest::testSimplification()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 12
Code Lines 8

Duplication

Lines 0
Ratio 0 %

Importance

Changes 2
Bugs 0 Features 0
Metric Value
c 2
b 0
f 0
dl 0
loc 12
rs 9.4285
cc 1
eloc 8
nc 1
nop 0
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