package com.baidu.disconf.core.test.zookeeper;
import java.util.List;
import java.util.Random;
import org.junit.Assert;
import org.junit.Test;
import com.baidu.disconf.core.common.zookeeper.ZookeeperMgr;
import com.baidu.disconf.core.common.zookeeper.inner.ResilientActiveKeyValueStore;
import com.baidu.disconf.core.test.zookeeper.mock.ResilientActiveKeyValueStoreMock;
import mockit.NonStrictExpectations;
/**
* 使用Jmockit进行测试
*
* @author liaoqiqi
* @version 2014-6-16
*/
public class ZookeeperMgrTest {
/**
* 测试获取Root子节点
*/
@Test
public final void testGetRootChildren() {
final ZookeeperMgr obj = ZookeeperMgr.getInstance();
//
// 注入
//
new NonStrictExpectations(obj) {
{
ResilientActiveKeyValueStore store = new ResilientActiveKeyValueStoreMock();
this.setField(obj, "store", store);
}
};
List<String> list = ZookeeperMgr.getInstance().getRootChildren();
for (String item : list) {
System.out.println(item);
}
Assert.assertTrue(list.size() > 0);
}
/**
* 写结点
*/
@Test
public final void testWritePersistentUrl() {
try {
Random random = new Random();
int randomInt = random.nextInt();
// 写
String url = "/disconfserver/dan_dnwebbilling_1_0_online";
ZookeeperMgr.getInstance().writePersistentUrl(url, String.valueOf(randomInt));
// 读
String readData = ZookeeperMgr.getInstance().readUrl(url, null);
Assert.assertEquals(String.valueOf(randomInt), readData);
} catch (Exception e) {
Assert.assertTrue(false);
}
}
}