### Question:
FunctionRegistryHolder { public List<DrillFuncHolder> getHoldersByFunctionName(String functionName, AtomicLong version) { try (AutoCloseableLock lock = readLock.open()) { if (version != null) { version.set(this.version); } Map<String, DrillFuncHolder> holders = functions.get(functionName); return holders == null ? Lists.<DrillFuncHolder>newArrayList() : Lists.newArrayList(holders.values()); } } FunctionRegistryHolder(); long getVersion(); void addJars(Map<String, List<FunctionHolder>> newJars, long version); void removeJar(String jarName); List<String> getAllJarNames(); List<String> getFunctionNamesByJar(String jarName); ListMultimap<String, DrillFuncHolder> getAllFunctionsWithHolders(AtomicLong version); ListMultimap<String, DrillFuncHolder> getAllFunctionsWithHolders(); ListMultimap<String, String> getAllFunctionsWithSignatures(); List<DrillFuncHolder> getHoldersByFunctionName(String functionName, AtomicLong version); List<DrillFuncHolder> getHoldersByFunctionName(String functionName); boolean containsJar(String jarName); int functionsSize(); String getJarNameByFunctionSignature(String functionName, String functionSignature);  }### Answer:
@Test public void testGetHoldersByFunctionName() { List<DrillFuncHolder> expectedResult = Lists.newArrayList(); for (List<FunctionHolder> functionHolders : newJars.values()) { for (FunctionHolder functionHolder : functionHolders) { if ("lower".equals(functionHolder.getName())) { expectedResult.add(functionHolder.getHolder()) ; } } } assertFalse(expectedResult.isEmpty()); compareTwoLists(expectedResult, registryHolder.getHoldersByFunctionName("lower")); }