Skip to content

Commit 7dcde3c

Browse files
committed
adding tests for Node::getDefinition
1 parent b2f4da0 commit 7dcde3c

File tree

2 files changed

+116
-12
lines changed

2 files changed

+116
-12
lines changed

tests/NodeTypeDiscovery/NodeDefinitionTest.php

Lines changed: 51 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,10 @@
1111

1212
namespace PHPCR\Tests\NodeTypeDiscovery;
1313

14+
use PHPCR\NodeType\NodeDefinitionInterface;
15+
use PHPCR\NodeType\NodeTypeInterface;
16+
use PHPCR\NodeType\NodeTypeManagerInterface;
17+
1418
/**
1519
* Test the NoteDefinition §8.
1620
*
@@ -19,16 +23,40 @@
1923
class NodeDefinitionTest extends \PHPCR\Test\BaseCase
2024
{
2125
private static $base;
26+
27+
/**
28+
* @var NodeTypeInterface
29+
*/
2230
private static $file;
31+
32+
/**
33+
* @var NodeTypeInterface
34+
*/
2335
private static $folder;
36+
37+
/**
38+
* @var NodeTypeInterface
39+
*/
2440
private static $hierarchyNodeType;
25-
/** jcr:content of nt:file */
41+
42+
/**
43+
* Node definition of the jcr:content in an nt:file type.
44+
*
45+
* @var NodeDefinitionInterface
46+
*/
2647
private $content;
48+
49+
/**
50+
* Node definition of a hierarchy node.
51+
*
52+
* @var NodeDefinitionInterface
53+
*/
2754
private $hierarchyNodeDef;
2855

2956
public static function setupBeforeClass($fixtures = false)
3057
{
3158
parent::setupBeforeClass($fixtures);
59+
/** @var NodeTypeManagerInterface $ntm */
3260
$ntm = self::$staticSharedFixture['session']->getWorkspace()->getNodeTypeManager();
3361
self::$file = $ntm->getNodeType('nt:file');
3462
self::$folder = $ntm->getNodeType('nt:folder');
@@ -37,6 +65,7 @@ public static function setupBeforeClass($fixtures = false)
3765

3866
public function setUp()
3967
{
68+
parent::setUp();
4069
try {
4170
$defs = self::$file->getChildNodeDefinitions();
4271
$this->assertInternalType('array', $defs);
@@ -127,4 +156,25 @@ public function testIsProtected()
127156
$this->assertFalse($this->content->isProtected());
128157
$this->assertFalse($this->hierarchyNodeDef->isProtected());
129158
}
159+
160+
// some tests about Node::getDefinition()
161+
162+
public function testGetNodeDefinitionExact()
163+
{
164+
// an nt:file must have a jcr:content property
165+
$node = $this->rootNode->getNode('tests_general_base/numberPropertyNode/jcr:content');
166+
$nodeDef = $node->getDefinition();
167+
$this->assertInstanceOf('PHPCR\\NodeType\\NodeDefinitionInterface', $nodeDef);
168+
$this->assertEquals('jcr:content', $nodeDef->getName());
169+
$this->assertTrue($nodeDef->isMandatory());
170+
}
171+
172+
public function testGetNodeDefinitionWildcard()
173+
{
174+
// defines a child of nt:folder
175+
$node = $this->rootNode->getNode('tests_general_base/index.txt');
176+
$nodeDef = $node->getDefinition();
177+
$this->assertInstanceOf('PHPCR\\NodeType\\NodeDefinitionInterface', $nodeDef);
178+
$this->assertEquals('*', $nodeDef->getName());
179+
}
130180
}

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)