KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > exoplatform > services > jcr > api > nodetypes > PrimaryNodeTypesTest


1 package org.exoplatform.services.jcr.api.nodetypes;
2  
3
4 import javax.jcr.*;
5 import javax.jcr.nodetype.ConstraintViolationException;
6 import javax.jcr.nodetype.NodeDef;
7 import javax.jcr.nodetype.NodeType;
8 import org.exoplatform.services.jcr.BaseTest;
9 import org.exoplatform.services.jcr.impl.core.RepositoryImpl;
10 import org.exoplatform.services.jcr.impl.util.EntityCollection;
11 import javax.jcr.nodetype.PropertyDef;
12
13 /**
14  * Created by The eXo Platform SARL .
15  *
16  * @author <a HREF="mailto:geaz@users.sourceforge.net">Gennady Azarenkov</a>
17  * @version $Id: PrimaryNodeTypesTest.java,v 1.6 2004/09/03 09:59:42 geaz Exp $
18  */

19
20 public class PrimaryNodeTypesTest extends BaseTest {
21
22   protected Node root;
23   protected Ticket ticket;
24
25   public void testDefault() throws Exception JavaDoc {
26     Node node = root.addNode("node1", "nt:default");
27     NodeDef def = node.getDefinition();
28     NodeType type = node.getPrimaryNodeType();
29
30     assertTrue("have child ", ((EntityCollection) node.getNodes()).size() == 0);
31     assertTrue("prop num !=1 ", ((EntityCollection) node.getProperties()).size() == 1);
32     assertEquals("Prop not default ", "nt:default", node.getProperty("jcr:primaryType").getString());
33
34     assertEquals("Type!= nt:default", type.getName(), "nt:default");
35     assertTrue("typeNodeDefs != 1", type.getChildNodeDefs().length == 1);
36     assertTrue("typePropDefs != 3", type.getPropertyDefs().length == 3);
37
38     assertEquals("prop!=jcr:primaryType", "jcr:primaryType", type.getPropertyDefs()[1].getName());
39     assertNull("prop0 name not null ", type.getPropertyDefs()[0].getName());
40     assertNull("node name != null", type.getChildNodeDefs()[0].getName());
41
42   }
43
44 /*
45    public void testReferenceable() throws Exception {
46
47       Node node;
48       try {
49           node = root.addNode("node-h", "mix:referenceable");
50           fail("AddNode ConstraintViolationException should be thrown as type is not primary!");
51        } catch (ConstraintViolationException e) {}
52
53       node = root.addNode("node-h", "nt:default");
54
55       node.addMixin("mix:referenceable");
56
57       NodeDef def = node.getDefinition();
58       NodeType type = node.getPrimaryNodeType();
59
60       assertTrue("have child ", ((EntityCollection)node.getNodes()).size() == 1);
61       assertTrue("prop num !=3 ", ((EntityCollection)node.getProperties()).size() == 3);
62
63
64 // assertEquals("Prop not referenceable ", "mix:referenceable", node.getProperty("jcr:primaryType").toString());
65
66       assertEquals("Type!= mix:referenceable", "mix:referenceable", type.getName() );
67 // assertTrue("typeNodeDefs != 1", type.getChildNodeDefs().length == 1);
68       assertTrue("typePropDefs != 1", type.getPropertyDefs().length == 1);
69
70       // Property names: [0]=jcr:uuid, [1]=jcr:primaryType
71 // assertEquals("prop2!=jcr:primaryType","jcr:primaryType", type.getPropertyDefs()[1].getName());
72       assertEquals("prop0 name != uuid ", "jcr:uuid", type.getPropertyDefs()[0].getName());
73       // NodeDefs = null
74       assertNull("node name != null", type.getChildNodeDefs());
75
76       assertNotNull("Prop not null ", node.getProperty("jcr:uuid").toString());
77       log.debug("UUID before <"+node.getProperty("jcr:uuid").toString()+">");
78       node.save(false);
79       node = root.getNode("node-h");
80       log.debug("UUID after <"+node.getProperty("jcr:uuid").toString()+">");
81       assertNotNull("Prop not null ", node.getProperty("jcr:uuid").toString());
82
83        // No children
84        errFlag = false;
85        try {
86            node.addNode("not-allowed");
87            errFlag = true;
88        } catch (ConstraintViolationException e) {}
89        if (errFlag)
90           fail("AddNode ConstraintViolationException should be thrown!");
91
92        errFlag = false;
93        try {
94            node.setProperty("not-allowed", "val");
95            errFlag = true;
96        } catch (ConstraintViolationException e) {}
97        if (errFlag)
98           fail("SetProp ConstraintViolationException should be thrown!");
99
100        // UUID Read Only
101        errFlag = false;
102        try {
103            node.setProperty("jcr:uuid", "1234");
104            errFlag = true;
105        } catch (ConstraintViolationException e) {}
106        if (errFlag)
107           fail("SetProp UUID ConstraintViolationException should be thrown!");
108    }
109
110 */

111
112   public void testHierarchyItem() throws Exception JavaDoc {
113
114     Node node = root.addNode("node-hi", "nt:hierarchyItem");
115     NodeDef def = node.getDefinition();
116     NodeType type = node.getPrimaryNodeType();
117
118     assertTrue("have child ", ((EntityCollection) node.getNodes()).size() == 0);
119     assertTrue("prop num !=2 ==" + ((EntityCollection) node.getProperties()).size(), ((EntityCollection) node.getProperties()).size() == 3);
120
121     assertEquals("Prop is not HierarchyItem ", "nt:hierarchyItem", node.getProperty("jcr:primaryType").getString());
122     assertEquals("Type!= nt:hierarchyItem", "nt:hierarchyItem", type.getName());
123
124     assertTrue("typePropDefs != 4", type.getPropertyDefs().length == 4);
125     // NodeDefs = null
126
assertTrue("nodeDefs != 0", type.getChildNodeDefs().length == 0);
127
128     // Property names: [0]=jcr:created, [1]=jcr:lastModified, [2]=jcr:primaryType
129
assertEquals("prop2 name !=jcr:primaryType", "jcr:primaryType", type.getPropertyDefs()[2].getName());
130     assertEquals("prop1 name != jcr:lastModified ", "jcr:lastModified", type.getPropertyDefs()[1].getName());
131     assertEquals("prop0 name != jcr:created", "jcr:created", type.getPropertyDefs()[0].getName());
132
133 // assertNull("Prop created not null ", node.getProperty("jcr:created").getValue());
134
// assertNull("Prop modified not null ", node.getProperty("jcr:lastModified").getValue());
135

136 // node.save(false);
137
node = root.getNode("node-hi");
138     assertNotNull("Prop null ", node.getProperty("jcr:created").toString());
139 // assertNull("Prop modified SAVED not null ", node.getProperty("jcr:lastModified").getValue());
140
}
141
142   public void testContent() throws Exception JavaDoc {
143
144     Node node = root.addNode("node-c", "nt:content");
145     NodeType type = node.getPrimaryNodeType();
146
147     assertEquals("Type!= nt:content", "nt:content", type.getName());
148     assertTrue("typePropDefs != 4", type.getPropertyDefs().length == 4);
149     assertTrue("typeNodeDefs != 1", type.getChildNodeDefs().length == 1);
150
151     assertTrue("Props != 2 =" + ((EntityCollection) node.getProperties()).size(), ((EntityCollection) node.getProperties()).size() == 2);
152     assertTrue("Nodes != 0", ((EntityCollection) node.getNodes()).size() == 0);
153
154     node.addNode("someNode");
155     node.addNode("someNode1");
156
157     node.setProperty("stringProp", "string");
158     node.setProperty("boolProp", true);
159
160 // log.debug("NODES-- " + ((EntityCollection) node.getNodes()).getList());
161

162     assertTrue("Props != 4 =" + ((EntityCollection) node.getProperties()).size(), ((EntityCollection) node.getProperties()).size() == 4);
163     assertTrue("Nodes != 2, = " + ((EntityCollection) node.getNodes()).size(), ((EntityCollection) node.getNodes()).size() == 2);
164
165   }
166
167   public void testFile() throws Exception JavaDoc {
168
169     Node node = root.addNode("node-f", "nt:file");
170     NodeType type = node.getPrimaryNodeType();
171
172     assertEquals("Type!= nt:file", "nt:file", type.getName());
173     assertTrue("typePropDefs != 4", type.getPropertyDefs().length == 4);
174     assertTrue("typeNodeDefs != 1", type.getChildNodeDefs().length == 1);
175
176     // Property names: [0]=jcr:created, [1]=jcr:lastModified, [2]=jcr:primaryType
177
assertEquals("prop2 name !=jcr:primaryType", "jcr:primaryType", type.getPropertyDefs()[2].getName());
178     assertEquals("prop1 name != jcr:lastModified ", "jcr:lastModified", type.getPropertyDefs()[1].getName());
179     assertEquals("prop0 name != jcr:created", "jcr:created", type.getPropertyDefs()[0].getName());
180
181     assertEquals("node0 name != jcr:content", "jcr:content", type.getChildNodeDefs()[0].getName());
182
183     assertTrue("Nodes != 1", ((EntityCollection) node.getNodes()).size() == 1);
184
185     assertEquals("Primary Item ", "jcr:content", node.getNode("jcr:content").getName());
186     assertEquals("Primary Item ", "jcr:content", node.getPrimaryItem().getName());
187
188     try {
189       node.addNode("not-allowed");
190       fail("AddNode ConstraintViolationException should be thrown!");
191     } catch (ConstraintViolationException e) {
192     }
193
194     node.setProperty("not-allowed", "val");
195     try {
196       node.save(false);
197       fail("SetProp ConstraintViolationException should be thrown!");
198     } catch (RepositoryException e) {
199     }
200
201     Node node1 = (Node) node.getPrimaryItem();
202     node1.addNode("test");
203     node1.setProperty("test", "test");
204
205   }
206
207   public void testFolder() throws Exception JavaDoc {
208
209     Node node = root.addNode("node-fl", "nt:folder");
210     NodeType type = node.getPrimaryNodeType();
211
212     assertEquals("Type!= nt:folder", "nt:folder", type.getName());
213     assertTrue("typePropDefs != 4", type.getPropertyDefs().length == 4);
214     assertTrue("typeNodeDefs != 1", type.getChildNodeDefs().length == 1);
215
216     // Property names: [0]=jcr:created, [1]=jcr:lastModified, [2]=jcr:primaryType
217
assertEquals("prop2 name !=jcr:primaryType", "jcr:primaryType", type.getPropertyDefs()[2].getName());
218     assertEquals("prop1 name != jcr:lastModified ", "jcr:lastModified", type.getPropertyDefs()[1].getName());
219     assertEquals("prop0 name != jcr:created", "jcr:created", type.getPropertyDefs()[0].getName());
220
221     assertNull("node0 name != null", type.getChildNodeDefs()[0].getName());
222
223     node.setProperty("not-allowed", "val");
224     try {
225       node.save(false);
226       fail("SetProp ConstraintViolationException should be thrown!");
227     } catch (RepositoryException e) {
228     }
229
230     Node node1 = node.addNode("node1");
231     assertEquals("Type!= nt:hierarchyItem", "nt:hierarchyItem", node1.getPrimaryNodeType().getName());
232
233   }
234
235   public void testMimeResource() throws Exception JavaDoc {
236
237     Node node = root.addNode("node-mr", "nt:mimeResource");
238     NodeType type = node.getPrimaryNodeType();
239
240     assertEquals("Type!=nt:mimeResource", "nt:mimeResource", type.getName());
241     PropertyDef[] propDefs = type.getPropertyDefs();
242
243     // 4 + primaryType, mixinType, uuid
244
assertTrue("typePropDefs = "+type.getPropertyDefs().length, type.getPropertyDefs().length == 7);
245     assertTrue("typeNodeDefs != 0", type.getChildNodeDefs().length == 0);
246
247
248   }
249 }
250
Popular Tags