[jbosscache-commits] JBoss Cache SVN: r6430 - in core/trunk/src: main/java/org/jboss/cache/commands/read and 2 other directories.

jbosscache-commits at lists.jboss.org jbosscache-commits at lists.jboss.org
Wed Jul 30 05:26:19 EDT 2008


Author: manik.surtani at jboss.com
Date: 2008-07-30 05:26:18 -0400 (Wed, 30 Jul 2008)
New Revision: 6430

Added:
   core/trunk/src/test/java/org/jboss/cache/commands/legacy/read/
   core/trunk/src/test/java/org/jboss/cache/commands/legacy/read/GravitateDataCommandTest.java
Modified:
   core/trunk/src/main/java/org/jboss/cache/commands/legacy/read/LegacyGravitateDataCommand.java
   core/trunk/src/main/java/org/jboss/cache/commands/read/GravitateDataCommand.java
Log:
Updated GravitateDataCommand test

Modified: core/trunk/src/main/java/org/jboss/cache/commands/legacy/read/LegacyGravitateDataCommand.java
===================================================================
--- core/trunk/src/main/java/org/jboss/cache/commands/legacy/read/LegacyGravitateDataCommand.java	2008-07-30 09:20:46 UTC (rev 6429)
+++ core/trunk/src/main/java/org/jboss/cache/commands/legacy/read/LegacyGravitateDataCommand.java	2008-07-30 09:26:18 UTC (rev 6430)
@@ -30,10 +30,16 @@
     * @return a Set of child node names that hang directly off the backup tree root, or null if the backup tree root doesn't exist.
     */
    @Override
+   @SuppressWarnings("unchecked")
    protected Set<Object> getBackupRoots()
    {
       NodeSPI backupSubtree = dataContainer.peek(BuddyManager.BUDDY_BACKUP_SUBTREE_FQN);
       if (backupSubtree == null) return null;
       return backupSubtree.getChildrenNamesDirect();
    }
+
+   void setSearchSubtrees(boolean searchSubtrees)
+   {
+      this.searchSubtrees = searchSubtrees;
+   }
 }

Modified: core/trunk/src/main/java/org/jboss/cache/commands/read/GravitateDataCommand.java
===================================================================
--- core/trunk/src/main/java/org/jboss/cache/commands/read/GravitateDataCommand.java	2008-07-30 09:20:46 UTC (rev 6429)
+++ core/trunk/src/main/java/org/jboss/cache/commands/read/GravitateDataCommand.java	2008-07-30 09:26:18 UTC (rev 6430)
@@ -38,7 +38,7 @@
    private CacheSPI spi;
 
    /* parametres */
-   private boolean searchSubtrees;
+   protected boolean searchSubtrees;
    private Address localAddress;
 
    private static final Log log = LogFactory.getLog(GravitateDataCommand.class);
@@ -241,9 +241,4 @@
             ", searchSubtrees=" + searchSubtrees +
             '}';
    }
-
-   void setSearchSubtrees(boolean searchSubtrees)
-   {
-      this.searchSubtrees = searchSubtrees;
-   }
 }

Copied: core/trunk/src/test/java/org/jboss/cache/commands/legacy/read/GravitateDataCommandTest.java (from rev 6425, core/trunk/src/test/java/org/jboss/cache/commands/read/GravitateDataCommandTest.java)
===================================================================
--- core/trunk/src/test/java/org/jboss/cache/commands/legacy/read/GravitateDataCommandTest.java	                        (rev 0)
+++ core/trunk/src/test/java/org/jboss/cache/commands/legacy/read/GravitateDataCommandTest.java	2008-07-30 09:26:18 UTC (rev 6430)
@@ -0,0 +1,148 @@
+package org.jboss.cache.commands.legacy.read;
+
+import static org.easymock.EasyMock.createStrictControl;
+import static org.easymock.EasyMock.expect;
+import org.easymock.IMocksControl;
+import org.jboss.cache.CacheSPI;
+import org.jboss.cache.DataContainer;
+import org.jboss.cache.Fqn;
+import org.jboss.cache.NodeSPI;
+import org.jboss.cache.buddyreplication.BuddyFqnTransformer;
+import org.jboss.cache.buddyreplication.BuddyManager;
+import org.jboss.cache.buddyreplication.GravitateResult;
+import org.jboss.cache.invocation.InvocationContext;
+import org.jboss.cache.invocation.LegacyInvocationContext;
+import org.jboss.cache.mock.MockNodesFixture;
+import org.jboss.cache.mock.NodeSpiMock;
+import org.jgroups.stack.IpAddress;
+import org.testng.annotations.BeforeMethod;
+import org.testng.annotations.Test;
+
+import java.util.ArrayList;
+import java.util.Collections;
+
+/**
+ * Tester class for {@link org.jboss.cache.commands.read.GravitateDataCommand}
+ *
+ * @author Mircea.Markus at jboss.com
+ * @since 2.2
+ */
+ at Test(groups = "unit")
+public class GravitateDataCommandTest
+{
+   LegacyGravitateDataCommand command;
+   DataContainer containerMock;
+   CacheSPI spiMock;
+   IMocksControl control;
+   Fqn fqn = Fqn.fromString("/dummy");
+   InvocationContext ctx;
+   BuddyFqnTransformer fqnTransformer = new BuddyFqnTransformer();
+
+   @BeforeMethod
+   public void setUp()
+   {
+      control = createStrictControl();
+      containerMock = control.createMock(DataContainer.class);
+      spiMock = control.createMock(CacheSPI.class);
+      command = new LegacyGravitateDataCommand(fqn, true, new IpAddress());
+      command.initialize(containerMock, spiMock, new BuddyFqnTransformer());
+      ctx = new LegacyInvocationContext(containerMock);
+   }
+
+   public void testNonexistentNode()
+   {
+      command.setSearchSubtrees(false);
+      expect(spiMock.getNode(fqn)).andReturn(null);
+      control.replay();
+      assert GravitateResult.noDataFound().equals(command.perform(ctx));
+   }
+
+   public void testExistentNodeInTheCache()
+   {
+      MockNodesFixture nodes = new MockNodesFixture();
+      command.setSearchSubtrees(false);
+
+      expect(spiMock.getNode(fqn)).andReturn(nodes.adfNode);
+      ArrayList arrayList = new ArrayList();
+      expect(containerMock.buildNodeData(Collections.EMPTY_LIST, nodes.adfNode, false)).andReturn(arrayList);
+      control.replay();
+      GravitateResult result = (GravitateResult) command.perform(ctx);
+      control.verify();
+
+      assert result != null;
+      assert result.getNodeData() == arrayList;
+   }
+
+   public void testNodeDoesExistsInBackupAndNoDead()
+   {
+      MockNodesFixture nodes = new MockNodesFixture();
+      expect(spiMock.getNode(fqn)).andReturn(null);
+      expect(containerMock.peek(BuddyManager.BUDDY_BACKUP_SUBTREE_FQN)).andReturn(nodes.abNode);
+
+      Fqn firstSearch = Fqn.fromString(BuddyManager.BUDDY_BACKUP_SUBTREE_FQN + "/c/dummy");
+      expect(spiMock.getNode(firstSearch)).andReturn(nodes.abcNode);
+
+      ArrayList listReference = new ArrayList();
+      expect(containerMock.buildNodeData(Collections.EMPTY_LIST, nodes.abcNode, false)).andReturn(listReference);
+
+      control.replay();
+      GravitateResult result = (GravitateResult) command.perform(ctx);
+      assert result.getNodeData() == listReference;
+      control.verify();
+   }
+
+   public void testNodeDoesNotExistsInBackupAndNoDead()
+   {
+      MockNodesFixture nodes = new MockNodesFixture();
+      expect(spiMock.getNode(fqn)).andReturn(null);
+      expect(containerMock.peek(BuddyManager.BUDDY_BACKUP_SUBTREE_FQN)).andReturn(nodes.adfNode);
+
+      control.checkOrder(false);
+      Fqn firstSearch = Fqn.fromString(BuddyManager.BUDDY_BACKUP_SUBTREE_FQN + "/g/dummy");
+      expect(spiMock.getNode(firstSearch)).andReturn(null);
+      Fqn secondSearch = Fqn.fromString(BuddyManager.BUDDY_BACKUP_SUBTREE_FQN + "/h/dummy");
+      expect(spiMock.getNode(secondSearch)).andReturn(null);
+      control.checkOrder(true);
+
+      control.replay();
+      assert GravitateResult.noDataFound().equals(command.perform(ctx));
+      control.verify();
+   }
+
+   public void testDeadBeackup() throws Exception
+   {
+      NodeSpiMock root = new NodeSpiMock(Fqn.ROOT);
+
+      //add first dead child
+      IpAddress firstAddress = new IpAddress("127.0.0.1", 1234);
+      NodeSpiMock firstDeadNode = (NodeSpiMock) root.addChildDirect(fqnTransformer.getDeadBackupRoot(firstAddress));
+      firstDeadNode.addChildDirect(Fqn.fromElements(0));
+      firstDeadNode.addChildDirect(Fqn.fromElements(1));
+      firstDeadNode.addChildDirect(Fqn.fromElements(2));
+
+      //add second dead child
+      IpAddress secondAddress = new IpAddress("127.0.0.1", 4321);
+      NodeSpiMock secondDeadNode = (NodeSpiMock) root.addChildDirect(fqnTransformer.getDeadBackupRoot(secondAddress));
+      secondDeadNode.addChildDirect(Fqn.fromElements(0));
+
+
+      expect(spiMock.getNode(fqn)).andReturn(null);
+      NodeSPI buddyBackupRoot = (NodeSPI) root.getChild(BuddyManager.BUDDY_BACKUP_SUBTREE_FQN);
+      expect(containerMock.peek(BuddyManager.BUDDY_BACKUP_SUBTREE_FQN)).andReturn(buddyBackupRoot);
+
+      control.checkOrder(false);
+      expect(spiMock.getChildrenNames(firstDeadNode.getFqn())).andReturn(firstDeadNode.getChildrenNames());
+      Object fqnElement = fqn.getLastElement();//this is only composed from one element
+      expect(spiMock.peek(Fqn.fromRelativeElements(firstDeadNode.getFqn(), 0, fqnElement), false)).andReturn(null);
+      expect(spiMock.peek(Fqn.fromRelativeElements(firstDeadNode.getFqn(), 1, fqnElement), false)).andReturn(null);
+      expect(spiMock.peek(Fqn.fromRelativeElements(firstDeadNode.getFqn(), 2, fqnElement), false)).andReturn(null);
+
+      expect(spiMock.getChildrenNames(secondDeadNode.getFqn())).andReturn(secondDeadNode.getChildrenNames());
+      expect(spiMock.peek(Fqn.fromRelativeElements(secondDeadNode.getFqn(), 0, fqnElement), false)).andReturn(null);
+      control.checkOrder(true);
+
+      control.replay();
+      assert GravitateResult.noDataFound().equals(command.perform(ctx));
+      control.verify();
+   }
+}




More information about the jbosscache-commits mailing list