Skip to content

Commit 9faccb2

Browse files
committed
Added unit tests for EncoderNodeChildren.php
1 parent 6a0df41 commit 9faccb2

File tree

2 files changed

+80
-3
lines changed

2 files changed

+80
-3
lines changed

src/PE/nodes/EncoderNodeChildren.php

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22

33
namespace PE\Nodes;
44

5+
use PE\Exceptions\EncoderNodeChildException;
6+
57
class EncoderNodeChildren {
68

79
/**
@@ -65,9 +67,9 @@ public function childExists($childName) {
6567
public function addChildrenToObject($childName, $target, $values) {
6668
$child = strtolower($childName);
6769
$childNode = $this->getChild($child);
68-
if ($childNode) {
69-
return $childNode->addChildrenToObject($target, $values);
70+
if (!$childNode) {
71+
throw new EncoderNodeChildException(sprintf('Trying to add children to object, but the child "%s" could not be found', $childName));
7072
}
71-
return false;
73+
return $childNode->addChildrenToObject($target, $values);
7274
}
7375
}
Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
<?php
2+
3+
namespace PE\Tests\Nodes;
4+
use PE\Nodes\EncoderNodeChild;
5+
use PE\Nodes\EncoderNodeChildren;
6+
use PE\Tests\Samples;
7+
8+
class EncoderNodeChildrenTest extends Samples {
9+
10+
protected function setUp() {
11+
parent::setUp();
12+
$this->_peApp = $this->nodeChildren();
13+
}
14+
15+
/**
16+
* @return EncoderNodeChildren
17+
*/
18+
protected function nodeChildren() {
19+
return new EncoderNodeChildren();
20+
}
21+
22+
public function testConstructor() {
23+
$nodeChildren = $this->nodeChildren();
24+
$this->assertNotNull($nodeChildren);
25+
$this->assertTrue($nodeChildren instanceof EncoderNodeChildren);
26+
}
27+
28+
public function testAddChild() {
29+
$nodeChildren = $this->nodeChildren();
30+
$child = $nodeChildren->addChild(new EncoderNodeChild('test'));
31+
$this->assertEquals($child, $nodeChildren->getChild('test'));
32+
33+
$this->assertFalse($nodeChildren->addChild($child));
34+
35+
}
36+
37+
public function testGetChild() {
38+
$nodeChildren = $this->nodeChildren();
39+
$child = $nodeChildren->addChild(new EncoderNodeChild('test'));
40+
$this->assertEquals($child, $nodeChildren->getChild('test'));
41+
$this->assertEquals($child, $nodeChildren->getChild('tEsT'));
42+
$this->assertNull($nodeChildren->getChild('unknown'));
43+
}
44+
45+
public function testGetChildren() {
46+
$nodeChildren = $this->nodeChildren();
47+
$this->assertEquals(array(), $nodeChildren->getChildren());
48+
$child = $nodeChildren->addChild(new EncoderNodeChild('test'));
49+
$this->assertEquals(array(
50+
'test' => $child
51+
), $nodeChildren->getChildren());
52+
}
53+
54+
public function testChildExists() {
55+
$nodeChildren = $this->nodeChildren();
56+
$nodeChildren->addChild(new EncoderNodeChild('test'));
57+
$this->assertTrue($nodeChildren->childExists('test'));
58+
$this->assertFalse($nodeChildren->childExists('unknown'));
59+
}
60+
61+
public function testAddChildrenToObject() {
62+
$farmNode = $this->addFarmNode();
63+
$farm = $this->getFarm(false, false);
64+
$house = $this->getBuildingHouse();
65+
$farmNode->addChildrenToObject('buildings', $farm, array(
66+
$house
67+
));
68+
$this->assertEquals(array($house), $farm->getBuildings());
69+
}
70+
public function testAddChildrenToObjectWhenChildIsNotFound() {
71+
$this->setExpectedException('\\PE\\Exceptions\\EncoderNodeChildException', 'Trying to add children to object, but the child "unknown" could not be found');
72+
$nodeChildren = $this->nodeChildren();
73+
$nodeChildren->addChildrenToObject('unknown', null, null);
74+
}
75+
}

0 commit comments

Comments
 (0)