public void testMultiPercolate() {
    String multiPercolateShardAction = MultiPercolateAction.NAME + "[shard][s]";
    interceptTransportActions(multiPercolateShardAction);

    client().prepareIndex("test-get", "type", "1").setSource("field", "value").get();

    MultiPercolateRequest multiPercolateRequest = new MultiPercolateRequest();
    List<String> indices = new ArrayList<>();
    int numRequests = iterations(1, 30);
    for (int i = 0; i < numRequests; i++) {
      String[] indicesOrAliases = randomIndicesOrAliases();
      Collections.addAll(indices, indicesOrAliases);
      PercolateRequest percolateRequest =
          new PercolateRequest().indices(indicesOrAliases).documentType("type");
      if (randomBoolean()) {
        percolateRequest.getRequest(new GetRequest("test-get", "type", "1"));
      } else {
        percolateRequest.source("\"field\":\"value\"");
      }
      multiPercolateRequest.add(percolateRequest);
    }

    internalCluster().clientNodeClient().multiPercolate(multiPercolateRequest).actionGet();

    clearInterceptedActions();
    assertIndicesSubset(indices, multiPercolateShardAction);
  }
 synchronized void interceptTransportActions(String... actions) {
   Collections.addAll(this.actions, actions);
 }