KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > jboss > portal > test > cms > SimpleTestCase


1 /*****************************************
2  * *
3  * JBoss Portal: The OpenSource Portal *
4  * *
5  * Forums JBoss Portlet *
6  * *
7  * Distributable under LGPL license. *
8  * See terms of license at gnu.org. *
9  * *
10  *****************************************/

11 package org.jboss.portal.test.cms;
12
13 import junit.framework.TestCase;
14
15 import javax.xml.parsers.DocumentBuilderFactory JavaDoc;
16 import javax.transaction.TransactionManager JavaDoc;
17 import javax.transaction.Status JavaDoc;
18 import java.io.InputStream JavaDoc;
19 import java.util.Arrays JavaDoc;
20
21 import org.w3c.dom.Document JavaDoc;
22 import org.w3c.dom.Element JavaDoc;
23 import org.jboss.portal.cms.CMS;
24 import org.jboss.portal.cms.Node;
25 import org.jboss.portal.cms.NoSuchURIException;
26 import org.jboss.portal.cms.NodeFactory;
27
28 /**
29  * @author <a HREF="mailto:julien@jboss.org">Julien Viet</a>
30  * @version $Revision: 1.9 $
31  */

32 public class SimpleTestCase extends TestCase
33 {
34
35    public SimpleTestCase(String JavaDoc name)
36    {
37       super(name);
38    }
39
40    private CMS cms;
41    private NodeFactory factory;
42
43    protected void setUp() throws Exception JavaDoc
44    {
45       ClassLoader JavaDoc loader = Thread.currentThread().getContextClassLoader();
46       InputStream JavaDoc in = loader.getResourceAsStream("test/domain.xml");
47       Document JavaDoc doc = DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(in);
48       Element JavaDoc elt = doc.getDocumentElement();
49       cms = new CMS();
50       cms.setConfig(elt);
51       cms.create();
52       cms.start();
53
54       factory = cms.getNodeFactory();
55    }
56
57    protected void tearDown() throws Exception JavaDoc
58    {
59       cms.stop();
60       cms.destroy();
61    }
62
63    public void testRemoveNonExistingNode() throws Exception JavaDoc
64    {
65       try
66       {
67          begin();
68          Node node = factory.getNode("/files/file");
69          node.delete();
70          fail("was expecting no such node exception");
71       }
72       catch (NoSuchURIException e)
73       {
74          // Expected
75
}
76       finally
77       {
78          terminate(false);
79       }
80    }
81
82    public void testRemoveContentNode() throws Exception JavaDoc
83    {
84       try
85       {
86          begin();
87          Node file = factory.getNode("/files/file");
88          file.createContent(new org.jboss.portal.cms.Content("blah1".getBytes("UTF-8"), "text/plain"), false);
89       }
90       finally
91       {
92          terminate(false);
93       }
94
95       try
96       {
97          begin();
98          Node file = factory.getNode("/files/file");
99          file.delete();
100          assertFalse(file.exists());
101       }
102       finally
103       {
104          terminate(false);
105       }
106
107       try
108       {
109          begin();
110          Node file = factory.getNode("/files/file");
111          assertFalse(file.exists());
112       }
113       finally
114       {
115          terminate(false);
116       }
117    }
118
119    public void testAddRemoveDirNode() throws Exception JavaDoc
120    {
121       try
122       {
123          begin();
124          factory.getNode("/files/file").createDir(false);
125       }
126       finally
127       {
128          terminate(false);
129       }
130
131       try
132       {
133          begin();
134          factory.getNode("/files/file").delete();
135       }
136       finally
137       {
138          terminate(false);
139       }
140
141       try
142       {
143          begin();
144          Node fileNode = factory.getNode("/files/file");
145          assertFalse(fileNode.exists());
146       }
147       finally
148       {
149          terminate(false);
150       }
151    }
152
153    public void testAddContentNodeRecursive() throws Exception JavaDoc
154    {
155       try
156       {
157          begin();
158          Node node = factory.getNode("/files/a/b/c");
159          node.createContent(new org.jboss.portal.cms.Content("blah1".getBytes("UTF-8"), "text/plain"), true);
160       }
161       finally
162       {
163          terminate(false);
164       }
165
166       try
167       {
168          begin();
169          factory.getNode("/files/d/e").createContent(new org.jboss.portal.cms.Content("blah".getBytes("UTF-8"), "text/plain"), false);
170          fail("was expecting no such node exception");
171       }
172       catch (NoSuchURIException e)
173       {
174       }
175       finally
176       {
177          terminate(true);
178       }
179    }
180
181    public void testAddDirNodeRecursive() throws Exception JavaDoc
182    {
183       try
184       {
185          begin();
186          Node node = factory.getNode("/files/a/b/c");
187          node.createDir(true);
188          assertTrue(node.exists());
189          assertTrue(node.isDir());
190       }
191       finally
192       {
193          terminate(false);
194       }
195
196       try
197       {
198          begin();
199          factory.getNode("/files/d/e").createDir(false);
200          fail("was expecting node exception");
201       }
202       catch (NoSuchURIException e)
203       {
204       }
205       finally
206       {
207          terminate(false);
208       }
209    }
210
211    public void testOverwrite() throws Exception JavaDoc
212    {
213       //
214
try
215       {
216          begin();
217          Node node = factory.getNode("/files/file1");
218          node.createContent(new org.jboss.portal.cms.Content("blah1".getBytes("UTF-8"), "text/plain"), false);
219          node.createContent(new org.jboss.portal.cms.Content("blah2".getBytes("UTF-8"), "text/plain"), false);
220          assertTrue(node.exists());
221          assertTrue(Arrays.equals("blah2".getBytes("UTF-8"), node.getContent().getBytes()));
222       }
223       finally
224       {
225          terminate(false);
226       }
227
228       //
229
try
230       {
231          begin();
232          factory.getNode("/files/file2").createDir(false);
233          factory.getNode("/files/file2").createDir(false);
234       }
235       finally
236       {
237          terminate(false);
238       }
239
240       //
241
try
242       {
243          begin();
244          factory.getNode("/files/file3").createDir(false);
245          factory.getNode("/files/file3").createContent(new org.jboss.portal.cms.Content("blah".getBytes("UTF-8"), "text/plain"), false);
246       }
247       finally
248       {
249          terminate(false);
250       }
251
252       //
253
try
254       {
255          begin();
256          factory.getNode("/files/file4").createContent(new org.jboss.portal.cms.Content("blah".getBytes("UTF-8"), "text/plain"), false);
257          factory.getNode("/files/file4").createDir(false);
258       }
259       finally
260       {
261          terminate(false);
262       }
263
264       //
265
try
266       {
267          begin();
268
269          Node file1 = factory.getNode("/files/file1");
270          assertTrue(file1.exists());
271          assertTrue(Arrays.equals("blah2".getBytes("UTF-8"), file1.getContent().getBytes()));
272
273          Node file2 = factory.getNode("/files/file2");
274          assertTrue(file2.exists());
275          assertTrue(file2.isDir());
276
277          Node file3 = factory.getNode("/files/file3");
278          assertTrue(file3.exists());
279          assertTrue(Arrays.equals("blah".getBytes("UTF-8"), file3.getContent().getBytes()));
280
281          Node file4 = factory.getNode("/files/file4");
282          assertTrue(file4.exists());
283          assertTrue(file4.isDir());
284       }
285       finally
286       {
287          terminate(false);
288       }
289    }
290
291    public void testAddFile() throws Exception JavaDoc
292    {
293       try
294       {
295          begin();
296          Node node = factory.getNode("/files/file");
297          node.createContent(new org.jboss.portal.cms.Content("blah".getBytes("UTF-8"), "text/plain"), false);
298          assertTrue(node.exists());
299       }
300       finally
301       {
302          terminate(false);
303       }
304
305       try
306       {
307          begin();
308          Node node = factory.getNode("/files/file");
309          assertTrue(node.exists());
310          assertFalse(node.isDir());
311          assertTrue(Arrays.equals("blah".getBytes("UTF-8"), node.getContent().getBytes()));
312          assertEquals("text/plain", node.getContent().getMimeType());
313       }
314       finally
315       {
316          terminate(false);
317       }
318    }
319
320    public void testAddDirNode() throws Exception JavaDoc
321    {
322       try
323       {
324          begin();
325          Node node = factory.getNode("/files/dir");
326          node.createDir(false);
327       }
328       finally
329       {
330          terminate(false);
331       }
332
333       try
334       {
335          begin();
336          Node dirNode = factory.getNode("/files/dir");
337          assertTrue(dirNode.exists());
338          assertTrue(dirNode.isDir());
339       }
340       finally
341       {
342          terminate(false);
343       }
344    }
345
346 /*
347    public void testBlah() throws Exception
348    {
349       nat.begin();
350
351       Node rootNode = Node.create(slideToken, "/");
352       assertTrue(rootNode.isDirectory());
353       assertEquals("", rootNode.getName());
354       DirectoryNode rootDir = (DirectoryNode)rootNode;
355       Map rootChildren = rootDir.getChildren();
356       Node usersNode = (Node)rootChildren.get("users");
357       assertNotNull(usersNode);
358       assertEquals("users", usersNode.getName());
359       assertEquals("/users", usersNode.getURI());
360       assertTrue(usersNode.isDirectory());
361       DirectoryNode usersDir = (DirectoryNode)usersNode;
362       Map usersChildren = usersDir.getChildren();
363       Node johnNode = (Node)usersChildren.get("john");
364       assertNotNull(johnNode);
365       // assertFalse(johnNode.isDirectory());
366
367       nat.commit();
368    }
369 */

370
371    public void begin()
372    {
373       try
374       {
375          TransactionManager JavaDoc tm = factory.getTransactionManager();
376          tm.begin();
377       }
378       catch (Exception JavaDoc e)
379       {
380          e.printStackTrace();
381          fail("Exception during transaction begin");
382       }
383    }
384
385    public void terminate(boolean markedRollback)
386    {
387       TransactionManager JavaDoc tm = factory.getTransactionManager();
388       try
389       {
390          int status = tm.getStatus();
391          switch(status)
392          {
393          case Status.STATUS_ACTIVE:
394             tm.commit();
395             if (markedRollback)
396             {
397                System.err.println("Transaction was not marked for rollback");
398             }
399             break;
400          case Status.STATUS_MARKED_ROLLBACK:
401             tm.rollback();
402             if (!markedRollback)
403             {
404                System.err.println("Transaction was marked for rollback");
405             }
406             break;
407          default:
408             System.err.println("Transaction unexpected status : " + status);
409          }
410       }
411       catch (Exception JavaDoc e)
412       {
413          e.printStackTrace();
414          System.err.println("Exception during transaction commit");
415       }
416    }
417 }
418
Popular Tags