### Question:
DocumentationParserSupport { public boolean isTagOpen(final String line) { if (line == null) { throw new IllegalArgumentException("Line cannot be null."); } if (isTerminatingTagOpen(line)) { return true; } final String normalized = normalize(line); return normalized.startsWith("@value") || normalized.startsWith("@codeSet") || normalized.startsWith("@optional"); }  boolean isCommentClose(final String line); boolean isCommentStart(final String line); boolean isTagOpen(final String line); boolean isTerminatingTagOpen(final String line); String normalize(final String line); String stripCommentClose(final String line);  }### Answer:
@Test public void testIsTagOpen() { @SuppressWarnings("unchecked") final List<String> tags = new ArrayList<String>( (List<String>) Whitebox.getInternalState(support, "terminatingTags")); tags.add("@value"); tags.add("@optional"); tags.add("@codeSet"); for (final String tag : tags) { final String line = "* " + tag + " and some documentation"; assertThat(support.isTagOpen(line)).as("Not marked as a tag open: " + line).isTrue(); } }
@Test public void testIsTagOpenNullLine() { IllegalArgumentException e = assertThrows(IllegalArgumentException.class, () -> { support.isTagOpen(null); }); assertThat(e.getMessage()).isEqualTo("Line cannot be null."); }