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

    String crlfCodeSample =
      "/**" + CR_END_OF_LINE + LF_END_OF_LINE +
        "* @return metric generated by the decorator" + CR_END_OF_LINE + LF_END_OF_LINE +
        "*/" + CR_END_OF_LINE + LF_END_OF_LINE +
        "@DependedUpon" + CR_END_OF_LINE + LF_END_OF_LINE +
        "public Metric generatesMetric() {" + CR_END_OF_LINE + LF_END_OF_LINE +
        "  return metric;" + CR_END_OF_LINE + LF_END_OF_LINE +
        "}" + CR_END_OF_LINE + LF_END_OF_LINE;

    DecorationDataHolder decorationData = new DecorationDataHolder();
    decorationData.loadSyntaxHighlightingData("0,52,cppd;54,67,a;69,75,k;106,112,k;");

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

    assertThat(htmlOutput).containsExactly(
      "<span class=\"cppd\">/**</span>",
      "<span class=\"cppd\">* @return metric generated by the decorator</span>",
      "<span class=\"cppd\">*/</span>",
      "<span class=\"a\">@DependedUpon</span>",
      "<span class=\"k\">public</span> Metric generatesMetric() {",
      "  <span class=\"k\">return</span> metric;",
      "}",
      ""
    );
  }