### Question:
SolrClient extends SearchClient { @Override public Set<String> getCopyFields() throws IOException, SearchClientException { StringBuilder sb = new StringBuilder(); sb.append(url); if (!url.endsWith("/")) { sb.append("/"); } sb.append("schema/copyfields?wt=json"); JsonResponse response = getJson(sb.toString()); if (response.getStatus() != 200) { throw new SearchClientException(response.getMsg()); } JsonElement root = response.getJson(); JsonArray copyFields = (JsonArray) ((JsonObject) root).get("copyFields"); Set<String> dests = new HashSet<>(); for (int i = 0; i < copyFields.size(); i++) { JsonObject entry = (JsonObject) copyFields.get(i); String dest = entry.get("dest").getAsString(); dests.add(dest); } return dests; } protected  SolrClient(String url); @Override SearchResultSet search(QueryRequest query); @Override FacetResult facet(QueryRequest query); @Override void addDocuments(List<StoredDocument> buildDocuments); @Override List<StoredDocument> getDocs(String idField, Set<String> ids,
                                        Set<String> whiteListFields,
                                        Set<String> blackListFields); @Override Set<String> getCopyFields(); @Override synchronized String getDefaultIdField(); @Override void deleteAll(); @Override IdGrabber getIdGrabber(ArrayBlockingQueue<Set<String>> ids, int batchSize,
                                  int copierThreads, Collection<Query> filterQueries); @Override Set<String> getSystemInternalFields(); @Override List<String> analyze(String field, String string); @Override List<TokenDF> getTerms(String field, String lower,
                                  int limit, int minCount);  }### Answer:
@Test public void testCopyFields() throws Exception { SolrClient client = new SolrClient(TMDB_URL); Set<String> copyFieldDests = client.getCopyFields(); assertTrue(copyFieldDests.contains("tsss_directors")); assertTrue(copyFieldDests.contains("tsss_cast")); assertEquals(20, copyFieldDests.size()); }