Skip to content

Commit 80068d7

Browse files
committed
adding tests for Node::getDefinition
1 parent b2f4da0 commit 80068d7

File tree

2 files changed

+115
-12
lines changed

2 files changed

+115
-12
lines changed

tests/NodeTypeDiscovery/NodeDefinitionTest.php

Lines changed: 50 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,9 @@
1010
*/
1111

1212
namespace PHPCR\Tests\NodeTypeDiscovery;
13+
use PHPCR\NodeType\NodeDefinitionInterface;
14+
use PHPCR\NodeType\NodeTypeInterface;
15+
use PHPCR\NodeType\NodeTypeManagerInterface;
1316

1417
/**
1518
* Test the NoteDefinition §8.
@@ -19,16 +22,40 @@
1922
class NodeDefinitionTest extends \PHPCR\Test\BaseCase
2023
{
2124
private static $base;
25+
26+
/**
27+
* @var NodeTypeInterface
28+
*/
2229
private static $file;
30+
31+
/**
32+
* @var NodeTypeInterface
33+
*/
2334
private static $folder;
35+
36+
/**
37+
* @var NodeTypeInterface
38+
*/
2439
private static $hierarchyNodeType;
25-
/** jcr:content of nt:file */
40+
41+
/**
42+
* Node definition of the jcr:content in an nt:file type.
43+
*
44+
* @var NodeDefinitionInterface
45+
*/
2646
private $content;
47+
48+
/**
49+
* Node definition of a hierarchy node.
50+
*
51+
* @var NodeDefinitionInterface
52+
*/
2753
private $hierarchyNodeDef;
2854

2955
public static function setupBeforeClass($fixtures = false)
3056
{
3157
parent::setupBeforeClass($fixtures);
58+
/** @var NodeTypeManagerInterface $ntm */
3259
$ntm = self::$staticSharedFixture['session']->getWorkspace()->getNodeTypeManager();
3360
self::$file = $ntm->getNodeType('nt:file');
3461
self::$folder = $ntm->getNodeType('nt:folder');
@@ -37,6 +64,7 @@ public static function setupBeforeClass($fixtures = false)
3764

3865
public function setUp()
3966
{
67+
parent::setUp();
4068
try {
4169
$defs = self::$file->getChildNodeDefinitions();
4270
$this->assertInternalType('array', $defs);
@@ -127,4 +155,25 @@ public function testIsProtected()
127155
$this->assertFalse($this->content->isProtected());
128156
$this->assertFalse($this->hierarchyNodeDef->isProtected());
129157
}
158+
159+
// some tests about Node::getDefinition()
160+
161+
public function testGetNodeDefinitionExact()
162+
{
163+
// an nt:file must have a jcr:content property
164+
$node = $this->rootNode->getNode('tests_general_base/numberPropertyNode/jcr:content');
165+
$nodeDef = $node->getDefinition();
166+
$this->assertInstanceOf('PHPCR\\NodeType\\NodeDefinitionInterface', $nodeDef);
167+
$this->assertEquals('jcr:content', $nodeDef->getName());
168+
$this->assertTrue($nodeDef->isMandatory());
169+
}
170+
171+
public function testGetNodeDefinitionWildcard()
172+
{
173+
// defines a child of nt:folder
174+
$node = $this->rootNode->getNode('tests_general_base/index.txt');
175+
$nodeDef = $node->getDefinition();
176+
$this->assertInstanceOf('PHPCR\\NodeType\\NodeDefinitionInterface', $nodeDef);
177+
$this->assertEquals('*', $nodeDef->getName());
178+
}
130179
}

tests/NodeTypeDiscovery/PropertyDefinitionTest.php

Lines changed: 65 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,9 @@
1111

1212
namespace PHPCR\Tests\NodeTypeDiscovery;
1313

14+
use PHPCR\NodeType\NodeTypeInterface;
15+
use PHPCR\NodeType\NodeTypeManagerInterface;
16+
use PHPCR\NodeType\PropertyDefinitionInterface;
1417
use PHPCR\Query\QOM\QueryObjectModelConstantsInterface;
1518

1619
/**
@@ -20,26 +23,77 @@
2023
*/
2124
class PropertyDefinitionTest extends \PHPCR\Test\BaseCase
2225
{
26+
/**
27+
* @var NodeTypeInterface
28+
*/
2329
private static $base;
30+
31+
/**
32+
* @var NodeTypeInterface
33+
*/
2434
private static $address;
35+
36+
/**
37+
* @var NodeTypeInterface
38+
*/
2539
private static $mix_created;
40+
41+
/**
42+
* @var NodeTypeInterface
43+
*/
2644
private static $resource;
2745

28-
/** nt:base property */
29-
private $primaryType; // (NAME) mandatory autocreated protected COMPUTE
30-
private $mixinTypes; // (NAME) protected multiple COMPUTE
46+
// properties of nt:base
47+
/**
48+
* (NAME) mandatory autocreated protected COMPUTE
49+
* @var PropertyDefinitionInterface
50+
*/
51+
private $primaryType;
52+
53+
/**
54+
* (NAME) protected multiple COMPUTE
55+
* @var PropertyDefinitionInterface
56+
*/
57+
private $mixinTypes;
58+
3159
/** properties of nt:address */
32-
private $workspace; // (STRING)
33-
private $pathprop; // (PATH)
34-
private $id; // (WEAKREFERENCE)
35-
/** property of mix:created */
36-
private $created; // (DATE) autocreated protected
37-
/** property of nt:resource */
38-
private $data; // (BINARY) mandatory
60+
61+
/**
62+
* (STRING)
63+
* @var PropertyDefinitionInterface
64+
*/
65+
private $workspace;
66+
67+
/**
68+
* (PATH)
69+
* @var PropertyDefinitionInterface
70+
*/
71+
private $pathprop;
72+
73+
/**
74+
* (WEAKREFERENCE)
75+
* @var PropertyDefinitionInterface
76+
*/
77+
private $id;
78+
79+
/**
80+
* (DATE) autocreated protected
81+
* property of mix:created
82+
* @var PropertyDefinitionInterface
83+
*/
84+
private $created; //
85+
86+
/**
87+
* (BINARY) mandatory
88+
* property of nt:resource
89+
* @var PropertyDefinitionInterface
90+
*/
91+
private $data; //
3992

4093
public static function setupBeforeClass($fixtures = false)
4194
{
4295
parent::setupBeforeClass(); // load default fixtures
96+
/** @var NodeTypeManagerInterface $ntm */
4397
$ntm = self::$staticSharedFixture['session']->getWorkspace()->getNodeTypeManager();
4498
self::$base = $ntm->getNodeType('nt:base');
4599
self::$address = $ntm->getNodeType('nt:address');
@@ -238,7 +292,7 @@ public function testGetPropertyDefinitionExact()
238292
$this->assertEquals('jcr:created', $propDef->getName());
239293
}
240294

241-
public function estGetPropertyDefinitionWildcard()
295+
public function testGetPropertyDefinitionWildcard()
242296
{
243297
$node = $this->rootNode->getNode('tests_general_base/numberPropertyNode/jcr:content');
244298
$valProperty = $node->getProperty('foo');

0 commit comments

Comments
 (0)