void (@NotNull SectionBasedDocString docString) { assertEquals("Summary", docString.getSummary()); final List<Section> sections = docString.getSections(); assertSize(3, sections); assertEquals("parameters", sections.get(0).getNormalizedTitle()); final List<SectionField> paramFields = sections.get(0).getFields(); assertSize(2, paramFields); final SectionField param1 = paramFields.get(0); assertEquals("x", param1.getName()); assertEquals("int", param1.getType()); assertEquals("first parameter", param1.getDescription()); final SectionField param2 = paramFields.get(1); assertEquals("y", param2.getName()); assertEmpty(param2.getType()); assertEquals("second parameter\n" + "with longer description", param2.getDescription()); assertEquals("raises", sections.get(1).getNormalizedTitle()); final List<SectionField> exceptionFields = sections.get(1).getFields(); assertSize(1, exceptionFields); final SectionField exception1 = exceptionFields.get(0); assertEmpty(exception1.getName()); assertEquals("Exception", exception1.getType()); assertEquals("if anything bad happens", exception1.getDescription()); assertEquals("returns", sections.get(2).getNormalizedTitle()); final List<SectionField> returnFields = sections.get(2).getFields(); assertSize(1, returnFields); final SectionField return1 = returnFields.get(0); assertEmpty(return1.getName()); assertEquals("None", return1.getType()); assertEquals("always", return1.getDescription()); }