@Override
 public void onNodeRemoved(OperationsNodeInfo node) {
   for (int i = 0; i < replicas; i++) {
     LOG.trace("Removing node {} replica {} from the circle", node.getConnectionInfo(), i);
     circle.remove(hash(node, i));
   }
 }
 private byte[] hash(OperationsNodeInfo node, int replica) {
   byte[] key = node.getConnectionInfo().getPublicKey().array();
   ByteBuffer data = ByteBuffer.wrap(new byte[key.length + SIZE_OF_INT]);
   data.put(key);
   data.putInt(replica);
   return md5.get().digest(data.array());
 }
 @Override
 public void onNodeAdded(OperationsNodeInfo node) {
   for (int i = 0; i < replicas; i++) {
     LOG.trace("Adding node {} replica {} to the circle", node.getConnectionInfo(), i);
     circle.put(hash(node, i), node);
   }
 }
 @Test
 public void testOnNodeRemoved() {
   OperationsNodeInfo nodeInfo = Mockito.mock(OperationsNodeInfo.class);
   ConnectionInfo connectionInfo = Mockito.mock(ConnectionInfo.class);
   Mockito.when(nodeInfo.getConnectionInfo()).thenReturn(connectionInfo);
   Map<String, OperationsNodeInfo> opsMap = Mockito.mock(Map.class);
   ReflectionTestUtils.setField(service, "opsMap", opsMap);
   DefaultOperationsServerListService.Memorizer memorizer =
       Mockito.mock(DefaultOperationsServerListService.Memorizer.class);
   ReflectionTestUtils.setField(service, "cache", memorizer);
   service.onNodeRemoved(nodeInfo);
   Mockito.verify(opsMap, Mockito.only()).remove(Mockito.anyString());
   Mockito.verify(memorizer, Mockito.only()).clear();
 }