Skip to content

Commit 0efb5c6

Browse files
committed
All unit tests work!
1 parent 304c632 commit 0efb5c6

File tree

8 files changed

+66
-33
lines changed

8 files changed

+66
-33
lines changed

src/PE/Nodes/Children/NodeChildAccessor.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
namespace PE\Nodes\Children;
44

5-
class NodeChildAccessor {
5+
abstract class NodeChildAccessor {
66

77
private $method;
88

src/PE/Nodes/Children/NodeChildGetter.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
namespace PE\Nodes\Children;
44

5-
class NodeChildGetter extends NodeChildAccessor {
5+
final class NodeChildGetter extends NodeChildAccessor {
66

77
function __construct($method) {
88
parent::__construct($method);

src/PE/Nodes/Children/NodeChildSetter.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
namespace PE\Nodes\Children;
44

5-
class NodeChildSetter extends NodeChildAccessor {
5+
final class NodeChildSetter extends NodeChildAccessor {
66

77
private $setAfterChildren = true;
88
private $setAfterAttributes = true;

src/PE/Nodes/EncoderNodeChild.php

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
use PE\Nodes\Children\NodeChildGetter;
77
use PE\Nodes\Children\NodeChildSetter;
88

9-
class EncoderNodeChild extends EncoderNodeVariable {
9+
class EncoderNodeChild {
1010

1111
/**
1212
* @var string
@@ -25,12 +25,11 @@ class EncoderNodeChild extends EncoderNodeVariable {
2525

2626
private $isArray = true;
2727

28-
function __construct($nodeName, NodeChildSetter $setter, NodeChildGetter $getter, $options = null) {
29-
parent::__construct('', $options);
28+
function __construct($nodeName, NodeChildSetter $setter = null, NodeChildGetter $getter = null) {
3029
$this->setChildNodeName($nodeName);
3130

32-
$this->setter($setter);
33-
$this->getter($getter);
31+
if ($setter) $this->setter($setter);
32+
if ($getter) $this->getter($getter);
3433
}
3534

3635
public function setChildNodeName($childNodeName) {

src/PE/Variables/Types/ObjectSetter.php

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77

88
use PE\Exceptions\VariableTypeException;
99
use PE\Nodes\EncoderNodeVariable;
10-
use PE\Variables\Variable;
1110

1211
/**
1312
* Class ObjectSetter

tests/PE/Nodes/Specials/VariableTypesNode.php

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,6 @@ public function postNodeRequiredSetter($nodeData, VariableTypesNode $variableTyp
7070
return $nodeData;
7171
}
7272
public function postNodeRequiredGetter($nodeData, VariableTypesNode $variableTypesNode, $name, $value, VariableTypes $variableTypes, $parent) {
73-
print_r('post getter required');
7473
$nodeData['required'] = $nodeData['required'] . ' | getter post';
7574
return $nodeData;
7675
}
@@ -85,7 +84,6 @@ public function postNodeOptionalSetter($nodeData, VariableTypesNode $variableTyp
8584
return $nodeData;
8685
}
8786
public function postNodeOptionalGetter($nodeData, VariableTypesNode $variableTypesNode, $name, $value, VariableTypes $variableTypes, $parent) {
88-
print_r('post getter optional');
8987
$nodeData['optional'] = $nodeData['optional'] . ' | getter post';
9088
return $nodeData;
9189
}
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
<?php
2+
3+
namespace PE\Tests\Nodes\Children;
4+
5+
use PE\Nodes\Children\NodeChildSetter;
6+
use PE\Tests\Samples;
7+
8+
class NodeChildSetterTest extends Samples
9+
{
10+
11+
protected function setUp()
12+
{
13+
parent::setUp();
14+
$this->_peApp = new NodeChildSetter('method');
15+
}
16+
17+
/**
18+
* @return NodeChildSetter
19+
*/
20+
protected function nodeChildSetter()
21+
{
22+
return $this->_peApp;
23+
}
24+
25+
public function testConstructor()
26+
{
27+
$setter = new NodeChildSetter('test');
28+
$this->assertNotNull($setter);
29+
$this->assertTrue($setter instanceof NodeChildSetter);
30+
}
31+
32+
public function testSetAfterChildren() {
33+
$nodeChildSetter = $this->nodeChildSetter();
34+
35+
$this->assertTrue($nodeChildSetter->setAfterChildren());
36+
$this->assertFalse($nodeChildSetter->setAfterChildren(false));
37+
$this->assertTrue($nodeChildSetter->setAfterChildren(true));
38+
}
39+
public function testSetAfterAttributes() {
40+
$nodeChildSetter = $this->nodeChildSetter();
41+
42+
$this->assertTrue($nodeChildSetter->setAfterAttributes());
43+
$this->assertFalse($nodeChildSetter->setAfterAttributes(false));
44+
$this->assertTrue($nodeChildSetter->setAfterAttributes(true));
45+
}
46+
}
47+
?>

tests/PE/Tests/Nodes/EncoderNodeChildTest.php

Lines changed: 12 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
11
<?php
22

33
namespace PE\Tests\Nodes;
4+
5+
use PE\Nodes\Children\NodeChildGetter;
6+
use PE\Nodes\Children\NodeChildSetter;
47
use PE\Nodes\EncoderNodeChild;
58
use PE\Tests\Samples;
69

@@ -16,11 +19,12 @@ protected function setUp() {
1619

1720
/**
1821
* @param string $nodeName
19-
* @param $options
22+
* @param NodeChildSetter $setter
23+
* @param NodeChildGetter $getter
2024
* @return EncoderNodeChild
2125
*/
22-
protected function nodeChild($nodeName = self::DEFAULT_NODE_NAME, $options = self::DEFAULT_CHILD_OPTIONS) {
23-
return new EncoderNodeChild($nodeName, $options);
26+
protected function nodeChild($nodeName = self::DEFAULT_NODE_NAME, NodeChildSetter $setter = null, NodeChildGetter $getter = null) {
27+
return new EncoderNodeChild($nodeName, $setter);
2428
}
2529

2630
public function testConstructor() {
@@ -47,19 +51,6 @@ public function testSetChildNodeNameWithNull() {
4751
$nodeChild->setChildNodeName(null);
4852
}
4953

50-
public function testSetAfterChildren() {
51-
$nodeChild = $this->nodeChild();
52-
$this->assertTrue($nodeChild->setAfterChildren());
53-
$this->assertFalse($nodeChild->setAfterChildren(false));
54-
$this->assertTrue($nodeChild->setAfterChildren(true));
55-
}
56-
public function testSetAfterAttributes() {
57-
$nodeChild = $this->nodeChild();
58-
$this->assertTrue($nodeChild->setAfterAttributes());
59-
$this->assertFalse($nodeChild->setAfterAttributes(false));
60-
$this->assertTrue($nodeChild->setAfterAttributes(true));
61-
}
62-
6354
public function testAddChildrenToObject() {
6455
$farmNode = $this->addFarmNode();
6556
$farm = $this->getFarm(false, false);
@@ -69,15 +60,14 @@ public function testAddChildrenToObject() {
6960
));
7061
$this->assertEquals(array($house), $farm->getBuildings());
7162
}
72-
public function testAddChildrenToObjectWithoutMethod() {
73-
$this->setExpectedException('\\PE\\Exceptions\\EncoderNodeChildException', 'Setter method (' . self::DEFAULT_NODE_NAME . ') for class "PE\Samples\General\Thing" does not exist');
74-
$nodeChild = $this->nodeChild();
63+
public function testAddChildrenToObjectWithNonExistentMethod() {
64+
$this->setExpectedException('\\PE\\Exceptions\\EncoderNodeChildException', 'Setter method (children) for class "PE\Samples\General\Thing" does not exist');
65+
$nodeChild = $this->nodeChild(self::DEFAULT_NODE_NAME, new NodeChildSetter(null));
7566
$nodeChild->addChildrenToObject($this->getThing(), array());
7667
}
7768
public function testAddChildrenToObjectWhenMethodDoesNotExist() {
78-
$this->setExpectedException('\\PE\\Exceptions\\EncoderNodeChildException', 'Trying to add children to "PE\Samples\General\Thing" with method "methodName", but this method does not exist');
79-
$nodeChild = $this->nodeChild();
80-
$nodeChild->setSetterMethod('methodName');
69+
$this->setExpectedException('\\PE\\Exceptions\\EncoderNodeChildException', 'Trying to add children to "PE\Samples\General\Thing" with method "unknown", but this method does not exist');
70+
$nodeChild = $this->nodeChild(self::DEFAULT_NODE_NAME, new NodeChildSetter('unknown'));
8171
$nodeChild->addChildrenToObject($this->getThing(), array());
8272
}
8373
}

0 commit comments

Comments
 (0)