### Question:
ReportController { @RequestMapping(value = "/reports/collections", method = RequestMethod.GET) @ResponseBody public CypherQuery collections() throws IOException { String cypherQuery = "START report = node:reports('collection:*')" + " WHERE not(exists(report.title)) AND not(exists(report.source)) " + " RETURN " + "null as " + ResultField.STUDY_CITATION + ", null as " + ResultField.STUDY_URL + ", null as " + ResultField.STUDY_DOI + ", null as " + ResultField.STUDY_SOURCE_CITATION + ", report.nInteractions as " + ResultField.NUMBER_OF_INTERACTIONS + ", report.nTaxa as " + ResultField.NUMBER_OF_DISTINCT_TAXA + ", report.nStudies as " + ResultField.NUMBER_OF_STUDIES + ", report.nSources as " + ResultField.NUMBER_OF_SOURCES + ", report.nTaxaNoMatch as " + ResultField.NUMBER_OF_DISTINCT_TAXA_NO_MATCH; return new CypherQuery(cypherQuery, null, CypherUtil.CYPHER_VERSION_2_3); }  @RequestMapping(value = "/reports/studies", method = RequestMethod.GET) @ResponseBody CypherQuery studies(@RequestParam(required = false) final String source, final HttpServletRequest request); @RequestMapping(value = "/dataset", method = RequestMethod.GET) @ResponseBody CypherQuery dataset(final HttpServletRequest request); @RequestMapping(value = "/source", method = RequestMethod.GET) @ResponseBody CypherQuery sourceRoot(final HttpServletRequest request); @RequestMapping(value = "/source/{org}", method = RequestMethod.GET) @ResponseBody CypherQuery sourceOrg(
        @PathVariable("org") final String org,
        final HttpServletRequest request); @RequestMapping(value = "/source/{org}/{name}", method = RequestMethod.GET) @ResponseBody CypherQuery sourceOrgName(
        @PathVariable("org") final String org,
        @PathVariable("name") final String name,
        final HttpServletRequest request); @RequestMapping(value = "/reports/sources", method = RequestMethod.GET) @ResponseBody CypherQuery sources(@RequestParam(required = false) final String sourceId,
                               final HttpServletRequest request); @RequestMapping(value = "/reports/collections", method = RequestMethod.GET) @ResponseBody CypherQuery collections();  }### Answer:
@Test public void collections() throws IOException { CypherQuery source = new ReportController().collections(); assertThat(source.getVersionedQuery(), is(CYPHER_VERSION + "START " + "report = node:reports('collection:*') " + "WHERE " + "not(exists(report.title)) AND not(exists(report.source)) " + "RETURN " + "null as study_citation, " + "null as study_url, " + "null as study_doi, " + "null as study_source_citation, " + "report.nInteractions as number_of_interactions, " + "report.nTaxa as number_of_distinct_taxa, " + "report.nStudies as number_of_studies, " + "report.nSources as number_of_sources, " + "report.nTaxaNoMatch as number_of_distinct_taxa_no_match")); CypherTestUtil.validate(source); }