### Question:
FileSerializedObjectCache implements IObjectCache { public List<String[]> list(String[] key) throws ApplicationException { if (key == null || key.length == 0) { throw new ApplicationException("null or empty object key"); } List<String[]> result = new ArrayList<String[]>(); String dirName = getSubdirname(key, key.length); File dir = new File(dirName); if (!dir.isDirectory()) { return result; } File[] entries = dir.listFiles(); for (File entry: entries) { result.add(fileToKey(entry)); } return result; } FileSerializedObjectCache(String cacheDir, boolean zipEnabled);  FileSerializedObjectCache(String cacheDir); String getCacheDir(); String getFilename(String [] key); String getSubdirname(String [] key, int len); void putObject(String subdir, String key, Object value); void put(String [] key, Object value, boolean isVolatile); Object get(String [] key, boolean isVolatile); void remove(String [] key); boolean exists(String[] key); List<String[]> list(String[] key);  }### Answer:
@Test public void testList() throws Exception { IObjectCache cache = new FileSerializedObjectCache(tempDir.getTempDir()); String [] key = {"A", "B.txt"}; cache.put(key, key, true); List<String[]> result; result = cache.list(new String[] {"C"}); assertNotNull(result); assertEquals(0, result.size()); result = cache.list(new String[] {"A"}); assertNotNull(result); assertEquals(1, result.size()); String[] childKey = result.get(0); assertEquals(2, childKey.length); assertEquals("A", childKey[0]); assertEquals("B.txt", childKey[1]); }