[jboss-cvs] JBossCache/tests/functional/org/jboss/cache/api ...
Manik Surtani
msurtani at jboss.com
Fri Sep 15 14:01:02 EDT 2006
User: msurtani
Date: 06/09/15 14:01:02
Modified: tests/functional/org/jboss/cache/api NodeAPITest.java
Added: tests/functional/org/jboss/cache/api NodeMoveAPITest.java
Log:
- Added move() API
- Added more tests
Revision Changes Path
1.2 +56 -1 JBossCache/tests/functional/org/jboss/cache/api/NodeAPITest.java
(In the diff below, changes in quantity of whitespace are not shown.)
Index: NodeAPITest.java
===================================================================
RCS file: /cvsroot/jboss/JBossCache/tests/functional/org/jboss/cache/api/NodeAPITest.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -b -r1.1 -r1.2
--- NodeAPITest.java 13 Sep 2006 17:10:42 -0000 1.1
+++ NodeAPITest.java 15 Sep 2006 18:01:02 -0000 1.2
@@ -8,6 +8,7 @@
import org.jboss.cache.factories.DefaultCacheFactory;
import javax.transaction.TransactionManager;
+import java.util.Map;
/**
* Tests {@link org.jboss.cache.Node}-centric operations
@@ -91,5 +92,59 @@
tm.commit();
}
- // TODO: MANIK: More Node API tests
+ public void testImmutabilityOfData()
+ {
+ rootNode.put("key", "value");
+ Map m = rootNode.getData();
+ try
+ {
+ m.put("x", "y");
+ fail("Map should be immutable!!");
+ }
+ catch (Exception e)
+ {
+ // expected
+ }
+
+ try
+ {
+ rootNode.getKeys().add(new Object());
+ fail("Key set should be immutable");
+ }
+ catch (Exception e)
+ {
+ // expected
+ }
+ }
+
+ public void testImmutabilityOfChildren()
+ {
+ rootNode.addChild(A);
+
+ try
+ {
+ rootNode.getChildren().clear();
+ fail("Collection of child nodes returned in getChildren() should be immutable");
+ }
+ catch (Exception e)
+ {
+ // expected
+ }
+ }
+
+ public void testGetChildAPI()
+ {
+ // creates a node with fqn /a/b/c
+ rootNode.addChild(A).addChild(B).addChild(C);
+
+ rootNode.getChild(A).put("key", "value");
+ rootNode.getChild(A).getChild(B).put("key", "value");
+ rootNode.getChild(A).getChild(B).getChild(C).put("key", "value");
+
+ assertEquals("value", rootNode.getChild(A).get("key"));
+ assertEquals("value", rootNode.getChild(A).getChild(B).get("key"));
+ assertEquals("value", rootNode.getChild(A).getChild(B).getChild(C).get("key"));
+
+ assertNull(rootNode.getChild(new Fqn("nonexistent")));
+ }
}
1.1 date: 2006/09/15 18:01:02; author: msurtani; state: Exp;JBossCache/tests/functional/org/jboss/cache/api/NodeMoveAPITest.java
Index: NodeMoveAPITest.java
===================================================================
package org.jboss.cache.api;
import junit.framework.TestCase;
import org.jboss.cache.CacheSPI;
import org.jboss.cache.Fqn;
import org.jboss.cache.Node;
import org.jboss.cache.factories.DefaultCacheFactory;
import javax.transaction.TransactionManager;
/**
* Excercises and tests the new move() api
*
* @author <a href="mailto:manik at jboss.org">Manik Surtani</a>
* @since 2.0.0
*/
public class NodeMoveAPITest extends TestCase
{
private Node rootNode;
private CacheSPI cache;
private TransactionManager tm;
private static final Fqn A = Fqn.fromString("/a"), B = Fqn.fromString("/b"), C = Fqn.fromString("/c"), D = Fqn.fromString("/d"), E = Fqn.fromString("/e");
protected void setUp()
{
// start a single cache instance
cache = (CacheSPI) new DefaultCacheFactory().createCache("META-INF/local-tx-service.xml");
rootNode = cache.getRoot();
tm = cache.getTransactionManager();
}
protected void tearDown()
{
if (cache != null) cache.stop();
if (rootNode != null) rootNode = null;
}
public void testBasicMove()
{
Object k = "key", vA = "valueA", vB = "valueB", vC = "valueC";
Node nodeA = rootNode.addChild(A);
nodeA.put(k, vA);
Node nodeB = rootNode.addChild(B);
nodeB.put(k, vB);
Node nodeC = nodeA.addChild(C);
nodeC.put(k, vC);
assertTrue(rootNode.hasChild(A));
assertTrue(rootNode.hasChild(B));
assertFalse(rootNode.hasChild(C));
assertTrue(nodeA.hasChild(C));
// test data
assertEquals(vA, nodeA.get(k));
assertEquals(vB, nodeB.get(k));
assertEquals(vC, nodeC.get(k));
// parentage
assertEquals(nodeA, nodeC.getParent());
// move
nodeC.move(nodeB);
assertTrue(rootNode.hasChild(A));
assertTrue(rootNode.hasChild(B));
assertFalse(rootNode.hasChild(C));
assertFalse(nodeA.hasChild(C));
assertTrue(nodeB.hasChild(C));
// test data
assertEquals(vA, nodeA.get(k));
assertEquals(vB, nodeB.get(k));
assertEquals(vC, nodeC.get(k));
// parentage
assertEquals(nodeB, nodeC.getParent());
}
public void testMoveWithChildren()
{
Object k = "key", vA = "valueA", vB = "valueB", vC = "valueC", vD = "valueD", vE = "valueE";
Node nodeA = rootNode.addChild(A);
nodeA.put(k, vA);
Node nodeB = rootNode.addChild(B);
nodeB.put(k, vB);
Node nodeC = nodeA.addChild(C);
nodeC.put(k, vC);
Node nodeD = nodeC.addChild(D);
nodeD.put(k, vD);
Node nodeE = nodeD.addChild(E);
nodeE.put(k, vE);
assertTrue(rootNode.hasChild(A));
assertTrue(rootNode.hasChild(B));
assertFalse(rootNode.hasChild(C));
assertTrue(nodeA.hasChild(C));
assertTrue(nodeC.hasChild(D));
assertTrue(nodeD.hasChild(E));
// test data
assertEquals(vA, nodeA.get(k));
assertEquals(vB, nodeB.get(k));
assertEquals(vC, nodeC.get(k));
assertEquals(vD, nodeD.get(k));
assertEquals(vE, nodeE.get(k));
// parentage
assertEquals(rootNode, nodeA.getParent());
assertEquals(rootNode, nodeB.getParent());
assertEquals(nodeA, nodeC.getParent());
assertEquals(nodeC, nodeD.getParent());
assertEquals(nodeD, nodeE.getParent());
// move
nodeC.move(nodeB);
assertTrue(rootNode.hasChild(A));
assertTrue(rootNode.hasChild(B));
assertFalse(rootNode.hasChild(C));
assertFalse(nodeA.hasChild(C));
assertTrue(nodeB.hasChild(C));
assertTrue(nodeC.hasChild(D));
assertTrue(nodeD.hasChild(E));
// test data
assertEquals(vA, nodeA.get(k));
assertEquals(vB, nodeB.get(k));
assertEquals(vC, nodeC.get(k));
assertEquals(vD, nodeD.get(k));
assertEquals(vE, nodeE.get(k));
// parentage
assertEquals(rootNode, nodeA.getParent());
assertEquals(rootNode, nodeB.getParent());
assertEquals(nodeB, nodeC.getParent());
assertEquals(nodeC, nodeD.getParent());
assertEquals(nodeD, nodeE.getParent());
}
public void testTxCommit()
{
fail("Implement me");
}
public void testTxRollback()
{
fail("Implement me");
}
public void testWithCacheloaders()
{
fail("Implement me");
}
public void testLocks()
{
fail("Implement me");
}
public void testConcurrency()
{
fail("Implement me");
}
}
More information about the jboss-cvs-commits
mailing list