### Question:
PubAnnotationProvider implements ExternalSearchProvider<PubAnnotationProviderTraits> { public List<PubAnnotationDocumentHandle> query(PubAnnotationProviderTraits aTraits, String aQuery) { Map<String, String> variables = new HashMap<>(); variables.put("keywords", aQuery); RestTemplate restTemplate = new RestTemplate(); ResponseEntity<List<PubAnnotationDocumentHandle>> response = restTemplate.exchange( aTraits.getUrl() + "/docs.json?keywords={keywords}", HttpMethod.GET, null, new DocumentHandleList(), variables); return response.getBody(); }  List<PubAnnotationDocumentHandle> query(PubAnnotationProviderTraits aTraits,
            String aQuery); @Override List<ExternalSearchResult> executeQuery(DocumentRepository aDocumentRepository,
            PubAnnotationProviderTraits aTraits, String aQuery); @Override ExternalSearchResult getDocumentResult(DocumentRepository aRepository,
            PubAnnotationProviderTraits aTraits, String aCollectionId, String aDocumentId); @Override String getDocumentText(DocumentRepository aDocumentRepository,
            PubAnnotationProviderTraits aTraits, String aCollectionId, String aDocumentId); @Override InputStream getDocumentAsStream(DocumentRepository aDocumentRepository,
            PubAnnotationProviderTraits aTraits, String aCollectionId, String aDocumentId); @Override String getDocumentFormat(DocumentRepository aRepository,
            PubAnnotationProviderTraits aTraits, String aCollectionId, String aDocumentId);  }### Answer:
@Test public void thatQueryWorks() throws Exception { List<PubAnnotationDocumentHandle> results = sut.query(traits, "binding"); assertThat(results).isNotEmpty(); }