@Test
public void testClaimRingGroupConductor() throws Exception {
ZkDomainGroup dg = ZkDomainGroup.create(getZk(), null, dg_root, "blah");
dg.setDomainVersions(Collections.emptyMap());
final RingGroup rg = ZkRingGroup.create(getZk(), ring_group, dg, coordinator);
create(ZkPath.append(ring_group, ZkRingGroup.RING_GROUP_CONDUCTOR_ONLINE_PATH));
assertFalse(rg.claimRingGroupConductor(RingGroupConductorMode.ACTIVE));
getZk().delete(ZkPath.append(ring_group, ZkRingGroup.RING_GROUP_CONDUCTOR_ONLINE_PATH), -1);
assertTrue(rg.claimRingGroupConductor(RingGroupConductorMode.ACTIVE));
assertFalse(rg.claimRingGroupConductor(RingGroupConductorMode.ACTIVE));
rg.releaseRingGroupConductor();
assertTrue(rg.claimRingGroupConductor(RingGroupConductorMode.ACTIVE));
WaitUntil.orDie(() -> {
try {
return RingGroupConductorMode.ACTIVE.equals(rg.getRingGroupConductorMode());
} catch (IOException e) {
throw new RuntimeException(e);
}
});
assertEquals(RingGroupConductorMode.ACTIVE, rg.getRingGroupConductorMode());
}