package com.github.signed.changelog; import static java.util.Arrays.asList; import static org.junit.Assert.fail; import java.util.List; public interface MarkdownSerializerFixture { default String lastLine() { return lineFromEnd(1); } default String secondToLastLine() { int lineNumberFromEnd = 2; return lineFromEnd(lineNumberFromEnd); } default String lineFromEnd(int lineNumberFromEnd) { List<String> lines = markdownLines(); return lines.get(lines.size() - lineNumberFromEnd); } default String line(int lineNumber) { List<String> strings = markdownLines(); if (lineNumber > strings.size()) { fail("There is no line " + lineNumber + "\n\n" + markdown()); } return strings.get(lineNumber - 1); } default List<String> markdownLines() { return asList(markdown().split("\n", -1)); } default String markdown() { return markdownSerializer().markdown(); } MarkdownSerializer markdownSerializer(); }