@Test()
public void testCreateOrMerge() {
String path = PropertyPathBuilder.instanceConfig(clusterName, "id7");
ZNRecord record = new ZNRecord("id7");
List<String> list = Arrays.asList("value1");
record.setListField("list", list);
ZKUtil.createOrMerge(_gZkClient, path, record, true, true);
record = _gZkClient.readData(path);
AssertJUnit.assertEquals(list, record.getListField("list"));
record = new ZNRecord("id7");
List<String> list2 = Arrays.asList("value2");
record.setListField("list", list2);
ZKUtil.createOrMerge(_gZkClient, path, record, true, true);
record = _gZkClient.readData(path);
AssertJUnit.assertEquals(Arrays.asList("value1", "value2"), record.getListField("list"));
Map<String, String> map = new HashMap<String, String>() {{put("k1", "v1");}};
record.setMapField("map", map);
ZKUtil.createOrMerge(_gZkClient, path, record, true, true);
record = _gZkClient.readData(path);
AssertJUnit.assertEquals(map, record.getMapField("map"));
record = new ZNRecord("id7");
Map<String, String> map2 = new HashMap<String, String>() {{put("k2", "v2");}};
record.setMapField("map", map2);
ZKUtil.createOrMerge(_gZkClient, path, record, true, true);
record = _gZkClient.readData(path);
AssertJUnit.assertEquals(new HashMap<String, String>() {{
put("k1", "v1");
put("k2", "v2");
}}, record.getMapField("map"));
}