### Question:
HttpQuery implements Iterable<Map.Entry<String, String>> { public int size() { int size = 0; for (final Entry<String, List<String>> entry : params.entrySet()) { size += entry.getValue().size(); } return size; } HttpQuery(final Map<String, List<String>> params, final Consumer<Map<String, List<String>>> queryParamsUpdater); @Nullable String get(final String key); Iterator<String> valuesIterator(final String key); Iterable<String> values(final String key); Set<String> keys(); HttpQuery add(final String key, final String value); HttpQuery add(final String key, final Iterable<String> values); HttpQuery add(final String key, final String... values); HttpQuery set(final String key, final String value); HttpQuery set(final String key, final Iterable<String> values); HttpQuery set(final String key, final String... values); boolean contains(final String key, final String value); boolean remove(final String key); boolean remove(final String key, final String value); int size(); @Override Iterator<Entry<String, String>> iterator();  }### Answer:
@Test public void testSize() { params.put("foo", newList("bar", "baz")); params.put("abc", newList("def", "123")); final HttpQuery query = new HttpQuery(params, queryParamsUpdater); assertEquals(4, query.size()); query.remove("abc", "123"); assertEquals(3, query.size()); query.remove("abc", "def"); assertEquals(2, query.size()); query.remove("abc"); assertEquals(2, query.size()); query.add("foo", "456"); assertEquals(3, query.size()); }