@Test
public void bullets() {

    final String content = "" +
            "This option causes rsync to set the group of the destination file to be the\n" +
            "same as the source file. If the receiving program is not running as the super-user\n" +
            " - only groups that the invoking user on the receiving\n" +
            " - side is a member of will be preserved.\n" +
            " - Without this option, the group is set to the default group of the invok- ing user on the receiving side.\n" +
            "\n" +
            "The preservation of group information will associate matching names by default, but\n" +
            "may fall back to using the ID number in some circumstances (see also the --numeric-ids\n" +
            "option for a full discussion).";
    final Document document = DocumentParser.parser(content);
    final String actual = Join.join("\n", document.elements);
    assertEquals("" +
            "Paragraph{content='This option causes rsync to set the group of the " +
            "destination file to be the same as the source file. If the receiving " +
            "program is not running as the super-user'}\n" +
            "" +
            "Bullet{content='only groups that the invoking user on the receiving'}\n" +
            "Bullet{content='side is a member of will be preserved.'}\n" +
            "Bullet{content='Without this option, the group is set to the default group" +
            " of the invok- ing user on the receiving side.'}\n" +
            "" +
            "Paragraph{content='The preservation of group information will associate " +
            "matching names by default, but may fall back to using the ID number in some " +
            "circumstances (see also the --numeric-ids option for a full discussion).'}", actual);
}