### Question:
Description { public String getMessage() { return String.format("[%s] %s", checkName, getMessageWithoutCheckName()); } private  Description(
      DiagnosticPosition position,
      String checkName,
      String rawMessage,
      @Nullable String linkUrl,
      List<Fix> fixes,
      SeverityLevel severity); String getMessage(); @Nullable String getLink(); String getRawMessage(); String getMessageWithoutCheckName(); @CheckReturnValue Description applySeverityOverride(SeverityLevel severity); static Builder builder(
      Tree node, String name, @Nullable String link, SeverityLevel severity, String message); static Builder builder(
      DiagnosticPosition position,
      String name,
      @Nullable String link,
      SeverityLevel severity,
      String message); static Builder builder(
      JCTree tree, String name, @Nullable String link, SeverityLevel severity, String message); static final Description NO_MATCH; final DiagnosticPosition position; final String checkName; final List<Fix> fixes; final BugPattern.SeverityLevel severity; }### Answer:
@Test public void testCustomLink() { Description description = new CustomLinkChecker() .buildDescription((DiagnosticPosition) new MockTree()) .setMessage("custom message") .build(); assertThat(description.getMessage()) .isEqualTo("[CustomLinkChecker] custom message\n (see https: }
@Test public void testCustomLinkOverride() { Description description = new CustomLinkChecker() .buildDescription((DiagnosticPosition) new MockTree()) .setMessage("custom message") .setLinkUrl("http: .build(); assertThat(description.getMessage()).contains("http: }