[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