@Test
  public void ableToCreateSimpleUrl() {
    HelpUrlBuilder builder = createBuilder().key("key").alt("alt").title("title").url("url");
    final HelpUrlMatcher matcher =
        new HelpUrlMatcher().url("url").key("key").alt("alt").title("title");

    assertThat(builder.build(), matcher);
    assertThat(builder.build(), matcher);

    builder.title("newtitle");
    matcher.title("newtitle");
    assertThat(builder.build(), matcher);

    builder.alt("newalt");
    matcher.alt("newalt");
    assertThat(builder.build(), matcher);

    builder.key("newKey");
    matcher.key("newKey");
    assertThat(builder.build(), matcher);

    builder.url("newUrl");
    matcher.url("newUrl");
    assertThat(builder.build(), matcher);

    builder.local(true);
    matcher.local(true);
    assertThat(builder.build(), matcher);
  }
  @Test
  public void ableToCopyBuilderClonesBuilderAndIsIndependent() {
    HelpUrlBuilder builder = createBuilder().key("key").alt("alt").title("title").url("url");
    final HelpUrlMatcher matcher =
        new HelpUrlMatcher().url("url").key("key").alt("alt").title("title");

    final HelpUrlBuilder builderCopy = builder.copy();
    final HelpUrlMatcher matcherCopy = matcher.copy();

    assertThat(builder.build(), matcher);
    assertThat(builderCopy.build(), matcher);

    builder.title("newtitle");
    matcher.title("newtitle");
    assertThat(builder.build(), matcher);
    assertThat(builderCopy.build(), matcherCopy);

    builder.alt("newalt");
    matcher.alt("newalt");
    assertThat(builder.build(), matcher);
    assertThat(builderCopy.build(), matcherCopy);

    builder.key("newKey");
    matcher.key("newKey");
    assertThat(builder.build(), matcher);
    assertThat(builderCopy.build(), matcherCopy);

    builder.url("newUrl");
    matcher.url("newUrl");
    assertThat(builder.build(), matcher);
    assertThat(builderCopy.build(), matcherCopy);

    builder.local(true);
    matcher.local(true);
    assertThat(builder.build(), matcher);
    assertThat(builderCopy.build(), matcherCopy);

    builderCopy.url("url2").title("title2").local(false);
    matcherCopy.url("url2").title("title2").local(false);

    assertThat(builder.build(), matcher);
    assertThat(builderCopy.build(), matcherCopy);
  }