@Test
    void testParse() {
        List<SyntaxFragment> fragments = new SyntaxParserImpl().parseSyntax(
                null,
                "literal <requirement> [optional]"
        );

        Assertions.assertEquals(3, fragments.size());

        final SyntaxFragment literal = fragments.get(0);
        Assertions.assertEquals("literal", literal.major());
        Assertions.assertEquals(Collections.emptyList(), literal.minor());
        Assertions.assertEquals(ArgumentMode.LITERAL, literal.argumentMode());

        final SyntaxFragment requirement = fragments.get(1);
        Assertions.assertEquals("requirement", requirement.major());
        Assertions.assertEquals(Collections.emptyList(), requirement.minor());
        Assertions.assertEquals(ArgumentMode.REQUIRED, requirement.argumentMode());

        final SyntaxFragment optional = fragments.get(2);
        Assertions.assertEquals("optional", optional.major());
        Assertions.assertEquals(Collections.emptyList(), optional.minor());
        Assertions.assertEquals(ArgumentMode.OPTIONAL, optional.argumentMode());
    }
Tests the correct functioning of the {@link SyntaxParserImpl}, which parses
command syntax into a List of {@link SyntaxFragment}
cloud-annotations/src/test/java/org/incendo/cloud/annotations/SyntaxParserImplTest.java