### Question:
G3Client implements IG3Client { public List<Item> getAlbumAndSubAlbumsAndPictures(int albumId) throws G3GalleryException { List<Item> items = getTree(albumId, "photo,album"); return items; } G3Client(String galleryUrl, String userAgent); Item getItem(int itemId); int createItem(Entity entity, File file); void updateItem(Entity entity); void deleteItem(int itemId); String getApiKey(); List<Item> getAlbumAndSubAlbumsAndPictures(int albumId); List<Item> getAlbumAndSubAlbums(int albumId); List<Item> getPictures(int albumId); InputStream getPhotoInputStream(String url); void setPassword(String password); void setUsername(String username); void setExistingApiKey(String existingApiKey); String getExistingApiKey(); boolean isUsingRewrittenUrls(); void setUsingRewrittenUrls(boolean isUsingRewrittenUrls);  }### Answer:
@Test public void getAlbumAndSubAlbumsAndPicturesTest() throws G3GalleryException { List<Item> albumAndSubAlbumsAndPictures = itemClient.getAlbumAndSubAlbumsAndPictures(172); Map<Integer,String> actual = new HashMap<Integer, String>(); for (Item album : albumAndSubAlbumsAndPictures) { actual.put(album.getEntity().getId(), album.getEntity().getName()); } Map<Integer,String> expected = new HashMap<Integer, String>(); expected.put(172, "Ottawa"); expected.put(173, "GP7AEU~V.JPG"); expected.put(178, "G3LKDB~A.JPG"); expected.put(179, "Canadian-parliament"); expected.put(180, "Canal Rideau"); assertEquals(expected, actual); }