List<String> decorateTextWithHtml(String text, DecorationDataHolder decorationDataHolder) {
    return decorateTextWithHtml(text, decorationDataHolder, null, null);
  }
@Test
  public void should_escape_ampersand_char() {

    String javadocWithAmpersandChar =
      "/**\n" +
        " * Definition of a dashboard.\n" +
        " * <p/>\n" +
        " * Its name and description can be retrieved using the i18n mechanism, using the keys \"dashboard.&lt;id&gt;.name\" and\n" +
        " * \"dashboard.&lt;id&gt;.description\".\n" +
        " *\n" +
        " * @since 2.13\n" +
        " */\n";

    DecorationDataHolder decorationData = new DecorationDataHolder();
    decorationData.loadSyntaxHighlightingData("0,220,cppd;");

    HtmlTextDecorator htmlTextDecorator = new HtmlTextDecorator();
    List<String> htmlOutput = htmlTextDecorator.decorateTextWithHtml(javadocWithAmpersandChar, decorationData);

    assertThat(htmlOutput).containsExactly(
      "<span class=\"cppd\">/**</span>",
      "<span class=\"cppd\"> * Definition of a dashboard.</span>",
      "<span class=\"cppd\"> * &lt;p/&gt;</span>",
      "<span class=\"cppd\"> * Its name and description can be retrieved using the i18n mechanism, using the keys \"dashboard.&amp;lt;id&amp;gt;.name\" and</span>",
      "<span class=\"cppd\"> * \"dashboard.&amp;lt;id&amp;gt;.description\".</span>",
      "<span class=\"cppd\"> *</span>",
      "<span class=\"cppd\"> * @since 2.13</span>",
      "<span class=\"cppd\"> */</span>",
      "");
  }