  @Test
  public void testWithACustomBranchAndRemote(TestContext tc) throws GitAPIException, IOException {

    git.close();
    remote = "acme";
    FileUtils.deleteQuietly(root);
    git = connect(bareRoot, root);
    Async async = tc.async();
    add(git, root, new File("src/test/resources/files/a.json"), null);
    branch = "dev";
    add(git, root, new File("src/test/resources/files/regular.json"), null);
    push(git);

    retriever = ConfigRetriever.create(vertx, new ConfigRetrieverOptions().addStore(new
        ConfigStoreOptions().setType("git").setConfig(new JsonObject()
        .put("url", bareRoot.getAbsolutePath())
        .put("path", "target/junk/work")
        .put("branch", branch)
        .put("remote", remote)
        .put("filesets", new JsonArray().add(new JsonObject().put("pattern", "*.json"))))));

    retriever.getConfig(ar -> {
      if (ar.failed()) {
        ar.cause().printStackTrace();
      }
      assertThat(ar.succeeded()).isTrue();
      assertThat(ar.result()).isNotEmpty();
      JsonObject json = ar.result();
      assertThat(json).isNotNull();
      assertThat(json.getString("key")).isEqualTo("value");
      async.complete();
    });

  }