cluster.add(getNewNode("node1", "/d1/r1")); NodeElement node2 = getNewNode("node2", "/d1/r2"); cluster.add(node2); cluster.add(getNewNode("node3", "/d1/r3")); NodeElement node3 = getNewNode("node4", "/d1/r4"); cluster.add(node3); assertEquals("4 nodes should be available", 4, cluster.countNumOfAvailableNodes(NodeBase.ROOT, excludedNodes)); NodeElement deadNode = getNewNode("node5", "/d1/r2"); excludedNodes.add(deadNode); assertEquals("4 nodes should be available with extra excluded Node", 4, cluster.countNumOfAvailableNodes(NodeBase.ROOT, excludedNodes)); assertEquals("excluded nodes with ROOT scope should be considered", 3, cluster.countNumOfAvailableNodes(NodeBase.ROOT, excludedNodes)); assertEquals("excluded nodes without ~ scope should be considered", 2, cluster.countNumOfAvailableNodes("~" + deadNode.getNetworkLocation(), excludedNodes)); assertEquals("excluded nodes with rack scope should be considered", 1, cluster.countNumOfAvailableNodes(deadNode.getNetworkLocation(), excludedNodes)); assertEquals("excluded nodes with ~ scope should be considered", 2, cluster.countNumOfAvailableNodes("~" + deadNode.getNetworkLocation(), excludedNodes)); assertEquals("No nodes should be considered for non-exist scope", 0, cluster.countNumOfAvailableNodes("/non-exist", excludedNodes));
cluster.add(getNewNode("node1", "/d1/r1")); NodeElement node2 = getNewNode("node2", "/d1/r2"); cluster.add(node2); cluster.add(getNewNode("node3", "/d1/r3")); NodeElement node3 = getNewNode("node4", "/d1/r4"); cluster.add(node3); assertEquals("4 nodes should be available", 4, cluster.countNumOfAvailableNodes(NodeBase.ROOT, excludedNodes)); NodeElement deadNode = getNewNode("node5", "/d1/r2"); excludedNodes.add(deadNode); assertEquals("4 nodes should be available with extra excluded Node", 4, cluster.countNumOfAvailableNodes(NodeBase.ROOT, excludedNodes)); assertEquals("excluded nodes with ROOT scope should be considered", 3, cluster.countNumOfAvailableNodes(NodeBase.ROOT, excludedNodes)); assertEquals("excluded nodes without ~ scope should be considered", 2, cluster.countNumOfAvailableNodes("~" + deadNode.getNetworkLocation(), excludedNodes)); assertEquals("excluded nodes with rack scope should be considered", 1, cluster.countNumOfAvailableNodes(deadNode.getNetworkLocation(), excludedNodes)); assertEquals("excluded nodes with ~ scope should be considered", 2, cluster.countNumOfAvailableNodes("~" + deadNode.getNetworkLocation(), excludedNodes)); assertEquals("No nodes should be considered for non-exist scope", 0, cluster.countNumOfAvailableNodes("/non-exist", excludedNodes));