KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > jboss > portal > test > core > tree > ReplicatedTestCase


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

9 package org.jboss.portal.test.core.tree;
10
11 import junit.framework.TestCase;
12 import org.jboss.portal.common.tree.Tree;
13 import org.jboss.portal.common.tree.Session;
14 import org.jboss.portal.common.tree.Node;
15 import org.jboss.portal.core.impl.tree.TreeImpl;
16 import org.apache.log4j.Level;
17 import org.apache.log4j.Logger;
18 import org.apache.log4j.SimpleLayout;
19 import org.apache.log4j.ConsoleAppender;
20 import org.apache.log4j.Appender;
21
22 import java.util.HashMap JavaDoc;
23 import java.util.Arrays JavaDoc;
24
25 /**
26  * @author <a HREF="mailto:julien@jboss.org">Julien Viet</a>
27  * @version $Revision: 1.1 $
28  */

29 public class ReplicatedTestCase extends TestCase
30 {
31
32    static
33    {
34       // Appender appender = new ConsoleAppender(new SimpleLayout());
35
// Logger.getRoot().addAppender(appender);
36
// Logger.getRoot().setLevel(Level.INFO);
37
}
38
39    private final Logger log = Logger.getLogger(ReplicatedTestCase.class);
40
41    public ReplicatedTestCase(String JavaDoc s)
42    {
43       super(s);
44    }
45
46    private Tree model1;
47    private Tree model2;
48
49    protected void setUp() throws Exception JavaDoc
50    {
51
52       TreeImpl jbcm1 = new TreeImpl();
53
54       jbcm1.setCacheConfiguration("cache/replicated.xml");
55       jbcm1.create();
56       jbcm1.start();
57       model1 = jbcm1;
58
59       TreeImpl jbcm2 = new TreeImpl();
60       jbcm2.setCacheConfiguration("cache/replicated.xml");
61       jbcm2.create();
62       jbcm2.start();
63       model2 = jbcm2;
64
65       // Wait until they find each other
66
while (jbcm1.getCache().getMembers().size() != 2)
67       {
68          log.info("Waiting until all nodes are here");
69          Thread.sleep(100);
70       }
71    }
72
73    protected void tearDown() throws Exception JavaDoc
74    {
75       TreeImpl jbcm1 = (TreeImpl)model1;
76       jbcm1.stop();
77       jbcm1.destroy();
78
79       TreeImpl jbcm2 = (TreeImpl)model2;
80       jbcm2.stop();
81       jbcm2.destroy();
82    }
83
84    public void testAddChildCommit() throws Exception JavaDoc
85    {
86       //
87
ChangeLog changeLog = new ChangeLog();
88       model2.addNodeChangeListener(changeLog);
89
90       //
91
Session session = model1.getSession();
92       Node root = model1.getRoot();
93       Node child = session.addChild(root, "blah", new HashMap JavaDoc());
94       session.commit();
95
96       synchronized(changeLog)
97       {
98          // Wait until time out or we have the expected change
99
while (changeLog.getChanges().size() < 1)
100          {
101             changeLog.wait(10000);
102          }
103       }
104
105       //
106
assertNotNull(model1.getRoot().getChild("blah"));
107       assertNotNull(model2.getRoot().getChild("blah"));
108       assertEquals(Arrays.asList(new Object JavaDoc[]{Change.createChildAdded(root.getID(), child.getName())}), changeLog.getChanges());
109    }
110 }
111
Popular Tags