BrokerFarm brokerFarm = new BrokerFarm();
assertNotNull(brokerFarm);
}
public void testOnDataChanged() {
BrokerFarm brokerFarm = new BrokerFarm();
HashMap<String, byte[]> changeMap = new HashMap<String, byte[]>();
/**
* Test broker root node event, should ignore
*/
changeMap.put("", "".getBytes());
brokerFarm.onDataChanged("/broker", changeMap);
assertTrue(brokerFarm.getAllBrokers().isEmpty());
/**
* Test add broker
*/
changeMap.clear();
ZooKeeperInfo.Broker brkNode = genBrokerInfo("127.0.0.1", 7676, true, "OpenMQ", false);
changeMap.put("127.0.0.1", brkNode.toString().getBytes());
brokerFarm.onDataChanged("/broker", changeMap);
assertEquals(brkNode, brokerFarm.getBrokerByHost("127.0.0.1"));
/**
* Test add loading
*/
changeMap.clear();
ZooKeeperInfo.Loading loadingNode = genBrokerLoading(10);
changeMap.put("127.0.0.1/loading", loadingNode.toString().getBytes());
brokerFarm.onDataChanged("/broker", changeMap);
assertEquals(brkNode, brokerFarm.getBrokerByHost("127.0.0.1"));
assertEquals(loadingNode, brokerFarm.getAllLoading().get("127.0.0.1"));
assertEquals(1, brokerFarm.getBrokerCount());
/**
* Test remove loading
*/
changeMap.clear();
changeMap.put("127.0.0.1/loading", null);
brokerFarm.onDataChanged("/broker", changeMap);
assertTrue(brokerFarm.getAllLoading().isEmpty());
/**
* Test remove broker
*/
changeMap.clear();
changeMap.put("127.0.0.1", null);
brokerFarm.onDataChanged("/broker", changeMap);
assertTrue(brokerFarm.getAllBrokers().isEmpty());
assertEquals(0, brokerFarm.getBrokerCount());
/**
* Test add multiple nodes
*/
changeMap.clear();
changeMap.put("127.0.0.1", brkNode.toString().getBytes());
changeMap.put("127.0.0.1/loading", loadingNode.toString().getBytes());
brokerFarm.onDataChanged("/broker", changeMap);
assertEquals(brkNode, brokerFarm.getBrokerByHost("127.0.0.1"));
assertEquals(loadingNode, brokerFarm.getAllLoading().get("127.0.0.1"));
assertEquals(1, brokerFarm.getBrokerCount());
/**
* Test remove multiple nodes
*/
changeMap.clear();
changeMap.put("127.0.0.1", null);
changeMap.put("127.0.0.1/loading", null);
brokerFarm.onDataChanged("/broker", changeMap);
assertTrue(brokerFarm.getAllBrokers().isEmpty());
assertTrue(brokerFarm.getAllLoading().isEmpty());
assertEquals(0, brokerFarm.getBrokerCount());
}