From ce3d0cb6b5349787d26f4a2d7201b3d04b8e5085 Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Tue, 23 Feb 2016 20:48:50 +0000 Subject: Add parsing for paragraph matchers --- .../tests/styles/DocumentMatcherParsingTests.java | 53 ++++++++++++++++++++++ .../mammoth/tests/styles/HtmlPathParsingTests.java | 7 ++- .../mammoth/tests/styles/StyleMapParserTests.java | 20 ++++++++ 3 files changed, 78 insertions(+), 2 deletions(-) create mode 100644 src/test/java/org/zwobble/mammoth/tests/styles/DocumentMatcherParsingTests.java (limited to 'src/test/java/org') diff --git a/src/test/java/org/zwobble/mammoth/tests/styles/DocumentMatcherParsingTests.java b/src/test/java/org/zwobble/mammoth/tests/styles/DocumentMatcherParsingTests.java new file mode 100644 index 0000000..dc87945 --- /dev/null +++ b/src/test/java/org/zwobble/mammoth/tests/styles/DocumentMatcherParsingTests.java @@ -0,0 +1,53 @@ +package org.zwobble.mammoth.tests.styles; + +import org.junit.Test; +import org.parboiled.support.Var; +import org.zwobble.mammoth.styles.ParagraphMatcher; +import org.zwobble.mammoth.styles.parsing.Parsing; +import org.zwobble.mammoth.styles.parsing.StyleMappingParser; + +import static org.hamcrest.MatcherAssert.assertThat; +import static org.zwobble.mammoth.tests.DeepReflectionMatcher.deepEquals; + +public class DocumentMatcherParsingTests { + @Test + public void canReadPlainParagraph() { + assertThat( + parseParagraphMatcher("p"), + deepEquals(ParagraphMatcher.ANY)); + } + + @Test + public void readsParagraphWithStyleId() { + assertThat( + parseParagraphMatcher("p.Heading1"), + deepEquals(ParagraphMatcher.styleId("Heading1"))); + } + + @Test + public void readsParagraphWithStyleName() { + assertThat( + parseParagraphMatcher("p[style-name='Heading 1']"), + deepEquals(ParagraphMatcher.styleName("Heading 1"))); + } + + @Test + public void readsParagraphOrderedList() { + assertThat( + parseParagraphMatcher("p:ordered-list(2)"), + deepEquals(ParagraphMatcher.orderedList("1"))); + } + + @Test + public void readsParagraphUnorderedList() { + assertThat( + parseParagraphMatcher("p:unordered-list(2)"), + deepEquals(ParagraphMatcher.unorderedList("1"))); + } + + private ParagraphMatcher parseParagraphMatcher(String input) { + Var matcher = new Var<>(); + Parsing.parse(StyleMappingParser.class, parser -> parser.ParagraphMatcher(matcher), input); + return matcher.get(); + } +} diff --git a/src/test/java/org/zwobble/mammoth/tests/styles/HtmlPathParsingTests.java b/src/test/java/org/zwobble/mammoth/tests/styles/HtmlPathParsingTests.java index c6d0cb1..04317b6 100644 --- a/src/test/java/org/zwobble/mammoth/tests/styles/HtmlPathParsingTests.java +++ b/src/test/java/org/zwobble/mammoth/tests/styles/HtmlPathParsingTests.java @@ -1,10 +1,11 @@ package org.zwobble.mammoth.tests.styles; import org.junit.Test; +import org.parboiled.support.Var; import org.zwobble.mammoth.styles.HtmlPath; import org.zwobble.mammoth.styles.HtmlPathElement; -import org.zwobble.mammoth.styles.parsing.HtmlPathParser; import org.zwobble.mammoth.styles.parsing.Parsing; +import org.zwobble.mammoth.styles.parsing.StyleMappingParser; import static org.hamcrest.MatcherAssert.assertThat; import static org.zwobble.mammoth.tests.DeepReflectionMatcher.deepEquals; @@ -66,6 +67,8 @@ public class HtmlPathParsingTests { } private HtmlPath parseHtmlPath(String input) { - return Parsing.parse(HtmlPathParser.class, HtmlPathParser::HtmlPath, input); + Var path = new Var<>(); + Parsing.parse(StyleMappingParser.class, parser -> parser.HtmlPath(path), input); + return path.get(); } } diff --git a/src/test/java/org/zwobble/mammoth/tests/styles/StyleMapParserTests.java b/src/test/java/org/zwobble/mammoth/tests/styles/StyleMapParserTests.java index 09f0806..ae2ef2b 100644 --- a/src/test/java/org/zwobble/mammoth/tests/styles/StyleMapParserTests.java +++ b/src/test/java/org/zwobble/mammoth/tests/styles/StyleMapParserTests.java @@ -1,4 +1,24 @@ package org.zwobble.mammoth.tests.styles; +import org.junit.Test; +import org.zwobble.mammoth.styles.HtmlPath; +import org.zwobble.mammoth.styles.ParagraphMatcher; +import org.zwobble.mammoth.styles.StyleMap; +import org.zwobble.mammoth.styles.parsing.StyleMapParser; + +import static org.hamcrest.MatcherAssert.assertThat; +import static org.zwobble.mammoth.tests.DeepReflectionMatcher.deepEquals; + public class StyleMapParserTests { + @Test + public void emptyStringIsParsedAsEmptyStyleMap() { + StyleMap styleMap = StyleMapParser.parse(""); + assertThat(styleMap, deepEquals(StyleMap.builder().build())); + } + + @Test + public void canMapParagraphs() { + StyleMap styleMap = StyleMapParser.parse("p => p"); + assertThat(styleMap, deepEquals(StyleMap.builder().mapParagraph(ParagraphMatcher.ANY, HtmlPath.EMPTY).build())); + } } -- cgit v1.2.3