Router { @GetMapping(value = "contract/{tx}/{function}") public QueryResult query( @PathVariable("tx") final String contractTransactionHash, @PathVariable("function") final String functionName, @RequestParam(value = "arguments", required = false) final String[] arguments ) { logger.trace("Transaction Hash: {}, Function: {}, Arguments: {}", contractTransactionHash, functionName, arguments); final String[] safeArguments = nvl(arguments, new String[0]); return contractService.tryQuery(contractTransactionHash, functionName, safeArguments); }  @PostConstruct void initialize(); @GetMapping("contract") DeploymentResult getLatestContract(); @GetMapping("builds") List<BuildSummary> getLatestBuilds(); @GetMapping("build/{uuid}") BuildDetails getBuild(@PathVariable("uuid") final String buildUuid); @PostMapping("build/{uuid}/deploy") DeploymentResult deploy(@PathVariable("uuid") final String buildUuid); @PostMapping(value = "contract/{tx}/{function}") ExecutionResult execute(
      @PathVariable("tx") final String contractTransactionHash,
      @PathVariable("function") final String functionName,
      @RequestBody final ContractInput contractInput); @GetMapping(value = "contract/{tx}/{function}") QueryResult query(
      @PathVariable("tx") final String contractTransactionHash,
      @PathVariable("function") final String functionName,
      @RequestParam(value = "arguments", required = false) final String[] arguments
  );  }
@Test public void testQuery() throws Exception { final String buildUuid = randomUUID().toString(); final String functionName = randomUUID().toString(); router.query(buildUuid, functionName, new String[0]); verify(contractService).tryQuery(anyString(), anyString(), any(String[].class)); }