### Question:
DuckDuckGoSearcher extends AbstractSearcher<WebContent> { @Override public List<WebContent> search(String query, int resultCount, Language language) throws SearcherException { List<WebContent> result = new ArrayList<>(); DocumentRetriever documentRetriever = new DocumentRetriever(); String requestUrl = String.format(HTML_URL, UrlHelper.encodeParameter(query)); LOGGER.debug("Request URL = {}", requestUrl); Document document; try { THROTTLE.hold(); document = documentRetriever.getWebDocument(requestUrl); } catch (Exception e) { throw new SearcherException("HTTP error while searching for \"" + query + "\" with " + getName() + " (request URL: \"" + requestUrl + "\"): " + e.getMessage(), e); } List<Node> resultBodies = XPathHelper.getXhtmlNodes(document, " for (Node node : resultBodies) { BasicWebContent.Builder builder = new BasicWebContent.Builder(); builder.setSummary(XPathHelper.getXhtmlNodeTextContent(node, ". builder.setTitle(XPathHelper.getXhtmlNodeTextContent(node, ". String url = XPathHelper.getXhtmlNodeTextContent(node, ". builder.setUrl(url); if (!url.isEmpty()) { result.add(builder.create()); } } return result; }  @Override List<WebContent> search(String query, int resultCount, Language language); @Override String getName(); static int getRequestCount(); @Override boolean isDeprecated();  }### Answer:
@Test public void testSearch() throws Exception { DuckDuckGoSearcher duckDuckGoSearcher = new DuckDuckGoSearcher(); List<WebContent> results = duckDuckGoSearcher.search("palladian", 10, Language.ENGLISH); for (WebContent result : results) { collector.checkThat(result.getUrl().isEmpty(), is(false)); } }