1
1
<?php
2
2
namespace PHPCR \Tests \Writing ;
3
3
4
- use PHPCR \PropertyType ;
5
-
6
4
require_once (__DIR__ . '/../../inc/BaseCase.php ' );
7
5
8
6
/**
12
10
*/
13
11
class MixinReferenceableTest extends \PHPCR \Test \BaseCase
14
12
{
15
- public static function setupBeforeClass ($ fixtures = '10_Writing/mixinreferenceable ' )
16
- {
17
- parent ::setupBeforeClass ($ fixtures );
18
- }
19
-
20
13
public function setUp ()
21
14
{
22
15
$ this ->renewSession (); // discard changes
@@ -29,11 +22,11 @@ public function setUp()
29
22
public function testReferenceOnNonReferenceableNode ()
30
23
{
31
24
// Load a non-referenceable node
32
- $ nonReferenceableNode = $ this ->node ->getNode ('non-referenceable ' );
25
+ $ referenced_node = $ this ->session ->getNode ('/tests_general_base/emptyExample ' );
33
26
34
27
// Try to reference it
35
- $ sourceNode = $ this ->node ->getNode ('node ' );
36
- $ sourceNode ->setProperty ('reference ' , $ nonReferenceableNode , \PHPCR \PropertyType::WEAKREFERENCE );
28
+ $ source_node = $ this ->session ->getNode ('/tests_general_base/index.txt/jcr:content ' );
29
+ $ source_node ->setProperty ('reference ' , $ referenced_node , \PHPCR \PropertyType::WEAKREFERENCE );
37
30
$ this ->session ->save ();
38
31
}
39
32
@@ -43,24 +36,24 @@ public function testReferenceOnNonReferenceableNode()
43
36
public function testReferenceOnNewlyReferenceableNode ()
44
37
{
45
38
// Load a non-referenceable node and make it referenceable
46
- $ referencedNode = $ this ->node ->getNode ('node ' );
47
- $ referencedNode ->addMixin ('mix:referenceable ' );
39
+ $ referenced_node = $ this ->session ->getNode ('/tests_general_base/emptyExample ' );
40
+ $ referenced_node ->addMixin ('mix:referenceable ' );
48
41
49
42
// Re-read the node to be sure it has a UUID
50
43
$ this ->saveAndRenewSession ();
51
- $ referencedNode = $ this ->node ->getNode ('node ' );
44
+ $ referenced_node = $ this ->session ->getNode ('/tests_general_base/emptyExample ' );
52
45
53
46
// Reference it from another node
54
- $ sourceNode = $ this ->node ->getNode ('other-node ' );
55
- $ sourceNode ->setProperty ('reference ' , $ referencedNode , \PHPCR \PropertyType::WEAKREFERENCE );
47
+ $ source_node = $ this ->session ->getNode ('/tests_general_base/index.txt/jcr:content ' );
48
+ $ source_node ->setProperty ('reference ' , $ referenced_node , \PHPCR \PropertyType::WEAKREFERENCE );
56
49
57
50
$ this ->session ->save ();
58
51
59
- $ this ->assertInstanceOf ('PHPCR\NodeInterface ' , $ sourceNode ->getPropertyValue ('reference ' ));
52
+ $ this ->assertInstanceOf ('PHPCR\NodeInterface ' , $ source_node ->getPropertyValue ('reference ' ));
60
53
61
54
// referrers only required to work once save happened
62
- $ this ->assertCount (0 , $ referencedNode ->getReferences ());
63
- $ this ->assertCount (1 , $ referencedNode ->getWeakReferences ());
55
+ $ this ->assertCount (0 , $ referenced_node ->getReferences ());
56
+ $ this ->assertCount (1 , $ referenced_node ->getWeakReferences ());
64
57
}
65
58
66
59
/**
@@ -69,91 +62,40 @@ public function testReferenceOnNewlyReferenceableNode()
69
62
public function testReferenceOnReferenceableNode ()
70
63
{
71
64
// Load a referenceable node
72
- $ referencedNode = $ this ->node ->getNode ('referenceable ' );
65
+ $ referenced_node = $ this ->session ->getNode ('/tests_general_base/idExample ' );
73
66
74
67
// Reference it from another node
75
- $ sourceNode = $ this ->node ->getNode ('node ' );
76
- $ sourceNode ->setProperty ('oreference ' , $ referencedNode , \PHPCR \PropertyType::WEAKREFERENCE );
68
+ $ source_node = $ this ->session ->getNode ('/tests_general_base/index.txt/jcr:content ' );
69
+ $ source_node ->setProperty ('oreference ' , $ referenced_node , \PHPCR \PropertyType::WEAKREFERENCE );
77
70
$ this ->session ->save ();
78
71
79
- $ this ->assertInstanceOf ('PHPCR\NodeInterface ' , $ sourceNode ->getPropertyValue ('oreference ' ));
72
+ $ this ->assertInstanceOf ('PHPCR\NodeInterface ' , $ source_node ->getPropertyValue ('oreference ' ));
80
73
}
81
74
82
75
/**
83
76
* Test that we can update a reference
84
77
*/
85
78
public function testUpdateReference ()
86
79
{
87
- $ referenced1 = $ this ->node ->getNode ('node ' );
80
+ $ referenced1 = $ this ->session ->getNode ('/tests_general_base/emptyExample ' );
88
81
$ referenced1 ->addMixin ('mix:referenceable ' );
89
82
$ this ->session ->save ();
90
83
91
84
// Load a referenceable node
92
- $ referenced2 = $ this ->node ->getNode ('referenceable ' );
85
+ $ referenced2 = $ this ->session ->getNode ('/tests_general_base/idExample ' );
93
86
94
87
// Reference it from another node
95
- $ sourceNode = $ this ->node ->getNode ('other-node ' );
88
+ $ source_node = $ this ->session ->getNode ('/tests_general_base/index.txt/jcr:content ' );
96
89
97
- $ sourceNode ->setProperty ('reference ' , $ referenced1 , \PHPCR \PropertyType::WEAKREFERENCE );
90
+ $ source_node ->setProperty ('reference ' , $ referenced1 , \PHPCR \PropertyType::WEAKREFERENCE );
98
91
$ this ->session ->save ();
99
- $ sourceNode ->setProperty ('reference ' , $ referenced2 , \PHPCR \PropertyType::WEAKREFERENCE );
92
+ $ source_node ->setProperty ('reference ' , $ referenced2 , \PHPCR \PropertyType::WEAKREFERENCE );
100
93
$ this ->session ->save ();
101
- $ this ->assertSame ($ referenced2 , $ sourceNode ->getPropertyValue ('reference ' ));
102
-
103
- $ this ->renewSession ();
104
- $ referenced2 = $ this ->node ->getNode ('referenceable ' );
105
- $ this ->assertSame ($ referenced2 , $ this ->node ->getNode ('other-node ' )->getProperty ('reference ' )->getValue ());
106
- }
107
-
108
- public function testMultiValueReference ()
109
- {
110
- $ this ->doTestMultiValueReference (
111
- array ('one ' , 'two ' , 'three ' ),
112
- array ('one ' , 'two ' , 'one ' , 'one ' , 'two ' , 'three ' ),
113
- PropertyType::REFERENCE
114
- );
115
- }
116
-
117
- public function testMultiValueWeakReference ()
118
- {
119
- $ this ->doTestMultiValueReference (
120
- array ('one ' , 'two ' , 'three ' ),
121
- array ('one ' , 'two ' , 'one ' , 'one ' , 'two ' , 'three ' ),
122
- PropertyType::WEAKREFERENCE
123
- );
124
- }
94
+ $ this ->assertSame ($ referenced2 , $ source_node ->getPropertyValue ('reference ' ));
125
95
126
- private function doTestMultiValueReference ($ nodeNames , $ nodeCollectionNames , $ referenceType )
127
- {
128
- $ baseNode = $ this ->node ;
129
- $ nodes = array ();
130
- foreach ($ nodeNames as $ nodeName ) {
131
- $ node = $ baseNode ->addNode ($ nodeName );
132
- $ node ->addMixin ('mix:referenceable ' );
133
- $ nodes [$ nodeName ] = $ node ;
134
- }
135
-
136
- $ this ->session ->save ();
137
-
138
- $ referrer = $ baseNode ->addNode ('referrer ' );
139
-
140
- $ nodeCollection = array ();
141
-
142
- foreach ($ nodeCollectionNames as $ nodeCollectionName ) {
143
- $ nodeCollection [] = $ nodes [$ nodeCollectionName ];
144
- }
145
- $ referrer ->setProperty ('references ' , $ nodeCollection , $ referenceType );
146
-
147
- $ this ->session ->save ();
148
-
149
- $ this ->renewSession ();
150
- $ referrer = $ this ->node ->getNode ('referrer ' );
151
- $ values = $ referrer ->getProperty ('references ' );
152
-
153
- foreach ($ values as $ referencedNode ) {
154
- $ name = array_shift ($ nodeCollectionNames );
155
- $ this ->assertSame ($ name , $ referencedNode ->getName ());
156
- }
96
+ $ session = $ this ->renewSession ();
97
+ $ referenced2 = $ session ->getNode ('/tests_general_base/idExample ' );
98
+ $ this ->assertSame ($ referenced2 , $ session ->getProperty ('/tests_general_base/index.txt/jcr:content/reference ' )->getValue ());
157
99
}
158
100
159
101
public function testSetUuidNewReferenceable ()
0 commit comments