@Override
  public <T extends HelixProperty> List<T> getChildValues(PropertyKey key, boolean throwException) {
    List<T> result = new ArrayList<>();
    if (key.toString().equals(EXTERNALVIEW_PATH)) {
      if (isAggregatedViewCluster) {
        // return external views from all DCs
        for (MockHelixAdmin mockHelixAdmin : mockHelixAdminList) {
          for (String resourceName : mockHelixAdmin.getResourcesInCluster(clusterName)) {
            ZNRecord record = new ZNRecord(resourceName);
            record.setMapFields(mockHelixAdmin.getPartitionToReplicasMapForResource(resourceName));
            result.add((T) new ExternalView(record));
          }
        }
      } else {
        for (String resourceName : mockLocalHelixAdmin.getResourcesInCluster(clusterName)) {
          ZNRecord record = new ZNRecord(resourceName);
          record.setMapFields(mockLocalHelixAdmin.getPartitionToReplicasMapForResource(resourceName));
          result.add((T) new ExternalView(record));
        }
      }
    }
    else if(key.toString().equals(IDEALSTATE_PATH)){
      if(isAggregatedViewCluster){
        // return ideal states from all DCs
        for (MockHelixAdmin mockHelixAdmin : mockHelixAdminList) {
            result.addAll((List<T>) mockHelixAdmin.getIdealStates());
        }
      } else {
        result.addAll((List<T>) mockLocalHelixAdmin.getIdealStates());
      }
    }
    return result;
  }
Get the child values from ZK of the path specified in the key.
@param key The key that specifies the path.
@param throwException Whether to throw exception if the path does not exist.
@return The list of child values.
@param <T>
ambry-clustermap/src/test/java/com/github/ambry/clustermap/MockHelixDataAccessor.java