String node2 = RandomUtil.randomString();
String node3 = RandomUtil.randomString();
BroadcastGroup bg1 = new BroadcastGroupImpl(node1,
RandomUtil.randomString(),
null,
-1,
groupAddress1,
groupPort1,
true);
bg1.start();
BroadcastGroup bg2 = new BroadcastGroupImpl(node2,
RandomUtil.randomString(),
null,
-1,
groupAddress2,
groupPort2,
true);
bg2.start();
BroadcastGroup bg3 = new BroadcastGroupImpl(node3,
RandomUtil.randomString(),
null,
-1,
groupAddress3,
groupPort3,
true);
bg3.start();
TransportConfiguration live1 = generateTC();
TransportConfiguration backup1 = generateTC();
TransportConfiguration live2 = generateTC();
TransportConfiguration backup2 = generateTC();
TransportConfiguration live3 = generateTC();
TransportConfiguration backup3 = generateTC();
Pair<TransportConfiguration, TransportConfiguration> connectorPair1 = new Pair<TransportConfiguration, TransportConfiguration>(live1,
backup1);
Pair<TransportConfiguration, TransportConfiguration> connectorPair2 = new Pair<TransportConfiguration, TransportConfiguration>(live2,
backup2);
Pair<TransportConfiguration, TransportConfiguration> connectorPair3 = new Pair<TransportConfiguration, TransportConfiguration>(live3,
backup3);
bg1.addConnectorPair(connectorPair1);
bg2.addConnectorPair(connectorPair2);
bg3.addConnectorPair(connectorPair3);
DiscoveryGroup dg1 = new DiscoveryGroupImpl(RandomUtil.randomString(),
RandomUtil.randomString(),
null,
groupAddress1,
groupPort1,
timeout);
dg1.start();
DiscoveryGroup dg2 = new DiscoveryGroupImpl(RandomUtil.randomString(),
RandomUtil.randomString(),
null,
groupAddress2,
groupPort2,
timeout);
dg2.start();
DiscoveryGroup dg3 = new DiscoveryGroupImpl(RandomUtil.randomString(),
RandomUtil.randomString(),
null,
groupAddress3,
groupPort3,
timeout);
dg3.start();
bg1.broadcastConnectors();
bg2.broadcastConnectors();
bg3.broadcastConnectors();
boolean ok = dg1.waitForBroadcast(1000);
Assert.assertTrue(ok);
Map<String, DiscoveryEntry> entryMap = dg1.getDiscoveryEntryMap();
Assert.assertNotNull(entryMap);
Assert.assertEquals(1, entryMap.size());
DiscoveryEntry entry = entryMap.get(node1);
Assert.assertNotNull(entry);
Assert.assertEquals(connectorPair1, entry.getConnectorPair());
ok = dg2.waitForBroadcast(1000);
Assert.assertTrue(ok);
entryMap = dg2.getDiscoveryEntryMap();
Assert.assertNotNull(entryMap);
Assert.assertEquals(1, entryMap.size());
entry = entryMap.get(node2);
Assert.assertNotNull(entry);
Assert.assertEquals(connectorPair2, entry.getConnectorPair());
ok = dg3.waitForBroadcast(1000);
Assert.assertTrue(ok);
entryMap = dg3.getDiscoveryEntryMap();
Assert.assertNotNull(entryMap);
Assert.assertEquals(1, entryMap.size());
entry = entryMap.get(node3);
Assert.assertNotNull(entry);
Assert.assertEquals(connectorPair3, entry.getConnectorPair());
bg1.stop();
bg2.stop();
bg3.stop();
dg1.stop();
dg2.stop();
dg3.stop();
}