@Test
public void dataReplicateDataCenterTest() throws URISyntaxException {
List<LocalMember> memberListDc1 = new ArrayList<>();
List<LocalMember> memberListDc2 = new ArrayList<>();
memberListDc1
.add(getLocalMemberDc(new URI("udp://10.0.0.1:8000"), "1", "DataCenter1", "Rack1"));
memberListDc1
.add(getLocalMemberDc(new URI("udp://10.0.0.2:8000"), "2", "DataCenter1", "Rack2"));
memberListDc2
.add(getLocalMemberDc(new URI("udp://10.0.1.1:8000"), "11", "DataCenter2", "Rack1"));
memberListDc2
.add(getLocalMemberDc(new URI("udp://10.0.1.2:8000"), "12", "DataCenter2", "Rack2"));
SharedDataMessage message = getSharedNodeData("datacenter1", "I am in data center 1 rack 1",
new DataCenterReplicable<>());
Assert.assertEquals(true, message.getReplicable()
.shouldReplicate(memberListDc1.get(0), memberListDc1.get(1), message));
Assert.assertEquals(true, message.getReplicable()
.shouldReplicate(memberListDc2.get(0), memberListDc2.get(1), message));
Assert.assertEquals(false, message.getReplicable()
.shouldReplicate(memberListDc1.get(0), memberListDc2.get(0), message));
Assert.assertEquals(false, message.getReplicable()
.shouldReplicate(memberListDc1.get(1), memberListDc2.get(1), message));
}