1 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.Logger; 17 import org.apache.log4j.Appender; 18 import org.apache.log4j.ConsoleAppender; 19 import org.apache.log4j.SimpleLayout; 20 import org.apache.log4j.Level; 21 22 import java.util.HashMap ; 23 import java.util.Arrays ; 24 import java.util.Collections ; 25 26 30 public class LocalTestCase extends TestCase 31 { 32 33 static 34 { 35 } 39 40 public LocalTestCase(String s) 41 { 42 super(s); 43 } 44 45 private Tree model; 46 47 protected void setUp() throws Exception 48 { 49 TreeImpl jbcm = new TreeImpl(); 50 jbcm.setCacheConfiguration("cache/local.xml"); 51 jbcm.create(); 52 jbcm.start(); 53 model = jbcm; 54 } 55 56 protected void tearDown() throws Exception 57 { 58 TreeImpl jbcm = (TreeImpl)model; 59 jbcm.stop(); 60 jbcm.destroy(); 61 } 62 63 public void testAddPropertyCommit() throws Exception 64 { 65 ChangeLog changeLog = new ChangeLog(); 66 model.addNodeChangeListener(changeLog); 67 Session session = model.getSession(); 68 Node root = model.getRoot(); 69 session.setProperty(root, "blah", "blah"); 70 session.commit(); 71 assertEquals("blah", root.getProperty("blah")); 72 assertEquals(Arrays.asList(new Object []{Change.createPropertyAdded(root.getID(), "blah")}), changeLog.getChanges()); 73 } 74 75 public void testAddPropertyRollback() throws Exception 76 { 77 ChangeLog changeLog = new ChangeLog(); 78 model.addNodeChangeListener(changeLog); 79 Session session = model.getSession(); 80 Node root = model.getRoot(); 81 session.setProperty(root, "blah", "blah"); 82 session.rollback(); 83 assertNull(root.getProperty("blah")); 84 assertEquals(0, changeLog.getChanges().size()); 85 } 86 87 public void testChangePropertyCommit() throws Exception 88 { 89 Session session = model.getSession(); 90 Node root = model.getRoot(); 91 session.setProperty(root, "blah", "blah1"); 92 session.commit(); 93 94 ChangeLog changeLog = new ChangeLog(); 95 model.addNodeChangeListener(changeLog); 96 session = model.getSession(); 97 session.setProperty(root, "blah", "blah2"); 98 session.commit(); 99 100 assertEquals("blah2", root.getProperty("blah")); 101 assertEquals(Arrays.asList(new Object []{Change.createPropertyChanged(root.getID(), "blah")}), changeLog.getChanges()); 102 } 103 104 public void testChangePropertyRollback() throws Exception 105 { 106 Session session = model.getSession(); 107 Node root = model.getRoot(); 108 session.setProperty(root, "blah", "blah1"); 109 session.commit(); 110 111 ChangeLog changeLog = new ChangeLog(); 112 model.addNodeChangeListener(changeLog); 113 session = model.getSession(); 114 session.setProperty(root, "blah", "blah2"); 115 session.rollback(); 116 117 assertEquals("blah1", root.getProperty("blah")); 118 assertEquals(Collections.EMPTY_LIST, changeLog.getChanges()); 119 } 120 121 147 148 public void testAddChildNoTx() throws Exception 149 { 150 ChangeLog changeLog = new ChangeLog(); 151 model.addNodeChangeListener(changeLog); 152 ((TreeImpl)model).getCache().put("/blah", new HashMap ()); 153 Node root = model.getRoot(); 154 Node child = root.getChild("blah"); 155 assertNotNull(child); 156 assertEquals(Arrays.asList(new Object []{Change.createChildAdded(root.getID(), child.getName())}), changeLog.getChanges()); 157 } 158 159 public void testAddChildCommit() throws Exception 160 { 161 ChangeLog changeLog = new ChangeLog(); 162 model.addNodeChangeListener(changeLog); 163 Session session = model.getSession(); 164 Node root = model.getRoot(); 165 Node child = session.addChild(root, "blah", new HashMap ()); 166 session.commit(); 167 assertNotNull(child); 168 assertEquals(Arrays.asList(new Object []{Change.createChildAdded(root.getID(), child.getName())}), changeLog.getChanges()); 169 } 170 171 public void testAddChildRollback() throws Exception 172 { 173 ChangeLog changeLog = new ChangeLog(); 174 model.addNodeChangeListener(changeLog); 175 Session session = model.getSession(); 176 Node root = model.getRoot(); 177 session.addChild(root, "blah", new HashMap ()); 178 session.rollback(); 179 assertNull(root.getChild("blah")); 180 assertEquals(Collections.EMPTY_LIST, changeLog.getChanges()); 181 } 182 183 public void testRemoveChildCommit() throws Exception 184 { 185 Session session = model.getSession(); 186 Node root = model.getRoot(); 187 Node child = session.addChild(root, "blah", new HashMap ()); 188 session.commit(); 189 190 ChangeLog changeLog = new ChangeLog(); 191 model.addNodeChangeListener(changeLog); 192 193 session = model.getSession(); 194 root = model.getRoot(); 195 session.removeChild(root, "blah"); 196 session.commit(); 197 198 child = root.getChild("blah"); 199 assertNull(child); 200 201 assertEquals(Arrays.asList(new Object []{Change.createChildRemoved(root.getID(), "blah")}), changeLog.getChanges()); 202 } 203 204 224 } 225 | Popular Tags |