This is an automated email from the ASF dual-hosted git repository. slachiewicz pushed a commit to branch DOXIA-568 in repository https://gitbox.apache.org/repos/asf/maven-doxia.git
commit a1173cc9ad00a8c5dd08ea026e35e699f0aabce2 Author: Sylwester Lachiewicz <[email protected]> AuthorDate: Sun May 30 18:06:26 2021 +0200 [DOXIA-568] Introduce AssertJ --- doxia-core/pom.xml | 6 + .../maven/doxia/parser/AbstractParserTest.java | 17 +- doxia-modules/doxia-module-markdown/pom.xml | 6 + .../module/markdown/MarkdownParserModuleTest.java | 4 +- .../doxia/module/markdown/MarkdownParserTest.java | 174 ++++++++++----------- 5 files changed, 99 insertions(+), 108 deletions(-) diff --git a/doxia-core/pom.xml b/doxia-core/pom.xml index cbfc95d..b5285ff 100644 --- a/doxia-core/pom.xml +++ b/doxia-core/pom.xml @@ -86,6 +86,12 @@ under the License. <artifactId>xmlunit-matchers</artifactId> <scope>test</scope> </dependency> + <dependency> + <groupId>org.assertj</groupId> + <artifactId>assertj-core</artifactId> + <version>2.9.1</version><!-- for Java 7 projects --> + <scope>test</scope> + </dependency> </dependencies> diff --git a/doxia-core/src/test/java/org/apache/maven/doxia/parser/AbstractParserTest.java b/doxia-core/src/test/java/org/apache/maven/doxia/parser/AbstractParserTest.java index 78d29d5..6729001 100644 --- a/doxia-core/src/test/java/org/apache/maven/doxia/parser/AbstractParserTest.java +++ b/doxia-core/src/test/java/org/apache/maven/doxia/parser/AbstractParserTest.java @@ -32,6 +32,8 @@ import java.io.Reader; import java.io.Writer; import java.util.Iterator; +import static org.assertj.core.api.Assertions.assertThat; + /** * Test the parsing of sample input files. * <br> @@ -115,20 +117,7 @@ public abstract class AbstractParserTest protected void assertEquals( Iterator<SinkEventElement> it, String... names ) { - StringBuilder expected = new StringBuilder(); - StringBuilder actual = new StringBuilder(); - - for ( String name : names ) - { - expected.append( name ).append( '\n' ); - } - - while ( it.hasNext() ) - { - actual.append( it.next().getName() ).append( '\n' ); - } - - assertEquals( expected.toString(), actual.toString() ); + assertThat ( it ).extracting( "name" ).containsExactly( names ); } protected void assertStartsWith( Iterator<SinkEventElement> it, String... names ) diff --git a/doxia-modules/doxia-module-markdown/pom.xml b/doxia-modules/doxia-module-markdown/pom.xml index 81061bc..43e7b9e 100644 --- a/doxia-modules/doxia-module-markdown/pom.xml +++ b/doxia-modules/doxia-module-markdown/pom.xml @@ -76,6 +76,12 @@ under the License. <groupId>commons-io</groupId> <artifactId>commons-io</artifactId> </dependency> + <dependency> + <groupId>org.assertj</groupId> + <artifactId>assertj-core</artifactId> + <version>2.9.1</version><!-- for Java 7 projects --> + <scope>test</scope> + </dependency> </dependencies> <build> diff --git a/doxia-modules/doxia-module-markdown/src/test/java/org/apache/maven/doxia/module/markdown/MarkdownParserModuleTest.java b/doxia-modules/doxia-module-markdown/src/test/java/org/apache/maven/doxia/module/markdown/MarkdownParserModuleTest.java index 4895969..c7451e8 100644 --- a/doxia-modules/doxia-module-markdown/src/test/java/org/apache/maven/doxia/module/markdown/MarkdownParserModuleTest.java +++ b/doxia-modules/doxia-module-markdown/src/test/java/org/apache/maven/doxia/module/markdown/MarkdownParserModuleTest.java @@ -22,6 +22,8 @@ package org.apache.maven.doxia.module.markdown; import org.apache.maven.doxia.parser.module.ParserModule; import org.codehaus.plexus.PlexusTestCase; +import static org.assertj.core.api.Assertions.assertThat; + /** * Test MarkdownParserModule. */ @@ -46,6 +48,6 @@ public class MarkdownParserModuleTest public void testExtensions() { - assertEquals( 2, parserModule.getExtensions().length ); + assertThat( parserModule.getExtensions() ).hasSize( 2 ); } } diff --git a/doxia-modules/doxia-module-markdown/src/test/java/org/apache/maven/doxia/module/markdown/MarkdownParserTest.java b/doxia-modules/doxia-module-markdown/src/test/java/org/apache/maven/doxia/module/markdown/MarkdownParserTest.java index 11e4da5..242290f 100644 --- a/doxia-modules/doxia-module-markdown/src/test/java/org/apache/maven/doxia/module/markdown/MarkdownParserTest.java +++ b/doxia-modules/doxia-module-markdown/src/test/java/org/apache/maven/doxia/module/markdown/MarkdownParserTest.java @@ -1,10 +1,5 @@ package org.apache.maven.doxia.module.markdown; -import java.io.IOException; -import java.io.Reader; -import java.util.Iterator; -import java.util.List; - /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file @@ -32,6 +27,12 @@ import org.apache.maven.doxia.sink.impl.SinkEventAttributeSet; import org.apache.maven.doxia.sink.impl.SinkEventElement; import org.apache.maven.doxia.sink.impl.SinkEventTestingSink; +import java.io.IOException; +import java.io.Reader; +import java.util.List; + +import static org.assertj.core.api.Assertions.assertThat; + /** * Tests for {@link MarkdownParser}. * @@ -84,11 +85,10 @@ public class MarkdownParserTest public void testParagraphSinkEvent() throws Exception { - Iterator<SinkEventElement> it = parseFileToEventTestingSink( "paragraph" ).getEventList().iterator(); + List<SinkEventElement> list = parseFileToEventTestingSink( "paragraph" ).getEventList(); - assertEquals( it, "head", "head_", "body", "paragraph", "text", "paragraph_", "body_" ); - - assertFalse( it.hasNext() ); + assertThat ( list ).extracting( "name" ).containsExactly( + "head", "head_", "body", "paragraph", "text", "paragraph_", "body_" ); } /** @@ -101,11 +101,9 @@ public class MarkdownParserTest { //System.out.println( parseFileToHtml( "font-bold" ) ); List<SinkEventElement> eventList = parseFileToEventTestingSink( "font-bold" ).getEventList(); - Iterator<SinkEventElement> it = eventList.iterator(); - - assertEquals( it, "head", "head_", "body", "paragraph", "inline", "text", "inline_", "paragraph_", "body_" ); - assertFalse( it.hasNext() ); + assertThat( eventList ).extracting( "name" ).containsExactly( + "head", "head_", "body", "paragraph", "inline", "text", "inline_", "paragraph_", "body_" ); SinkEventElement inline = eventList.get( 4 ); assertEquals( "inline", inline.getName() ); @@ -123,11 +121,10 @@ public class MarkdownParserTest { //System.out.println( parseFileToHtml( "font-italic" ) ); List<SinkEventElement> eventList = parseFileToEventTestingSink( "font-italic" ).getEventList(); - Iterator<SinkEventElement> it = eventList.iterator(); - assertEquals( it, "head", "head_", "body", "paragraph", "inline", "text", "inline_", "paragraph_", "body_" ); + assertThat( eventList ).extracting( "name" ).containsExactly( + "head", "head_", "body", "paragraph", "inline", "text", "inline_", "paragraph_", "body_" ); - assertFalse( it.hasNext() ); SinkEventElement inline = eventList.get( 4 ); assertEquals( "inline", inline.getName() ); SinkEventAttributeSet atts = (SinkEventAttributeSet) inline.getArgs()[0]; @@ -142,13 +139,11 @@ public class MarkdownParserTest public void testFontMonospacedSinkEvent() throws Exception { - //System.out.println( parseFileToHtml( "font-monospaced" ) ); List<SinkEventElement> eventList = parseFileToEventTestingSink( "font-monospaced" ).getEventList(); - Iterator<SinkEventElement> it = eventList.iterator(); - assertEquals( it, "head", "head_", "body", "paragraph", "inline", "text", "inline_", "paragraph_", "body_" ); + assertThat( eventList ).extracting( "name" ).containsExactly( + "head", "head_", "body", "paragraph", "inline", "text", "inline_", "paragraph_", "body_" ); - assertFalse( it.hasNext() ); SinkEventElement inline = eventList.get( 4 ); assertEquals( "inline", inline.getName() ); SinkEventAttributeSet atts = (SinkEventAttributeSet) inline.getArgs()[0]; @@ -163,11 +158,10 @@ public class MarkdownParserTest public void testCodeSinkEvent() throws Exception { - Iterator<SinkEventElement> it = parseFileToEventTestingSink( "code" ).getEventList().iterator(); - - assertEquals( it, "head", "head_", "body", "paragraph", "text", "paragraph_", "text", "verbatim", "inline", "text", "inline_", "verbatim_", "body_" ); + List<SinkEventElement> eventList = parseFileToEventTestingSink( "code" ).getEventList(); - assertFalse( it.hasNext() ); + assertThat( eventList ).extracting( "name" ).containsExactly( + "head", "head_", "body", "paragraph", "text", "paragraph_", "text", "verbatim", "inline", "text", "inline_", "verbatim_", "body_" ); } /** @@ -179,11 +173,9 @@ public class MarkdownParserTest throws Exception { List<SinkEventElement> eventList = parseFileToEventTestingSink( "fenced-code-block" ).getEventList(); - Iterator<SinkEventElement> it = eventList.iterator(); - assertEquals( it, "head", "head_", "body", "paragraph", "text", "paragraph_", "text", "verbatim", "inline", "text", "inline_", "verbatim_", "body_" ); - - assertFalse( it.hasNext() ); + assertThat( eventList ).extracting( "name" ).containsExactly( + "head", "head_", "body", "paragraph", "text", "paragraph_", "text", "verbatim", "inline", "text", "inline_", "verbatim_", "body_" ); // PRE element must be a "verbatim" Sink event that specifies // BOXED = true @@ -209,11 +201,10 @@ public class MarkdownParserTest public void testImageSinkEvent() throws Exception { - Iterator<SinkEventElement> it = parseFileToEventTestingSink( "image" ).getEventList().iterator(); - - assertEquals( it, "head", "head_", "body", "paragraph", "text", "figureGraphics", "text", "paragraph_", "body_" ); + List<SinkEventElement> eventList = parseFileToEventTestingSink( "image" ).getEventList(); - assertFalse( it.hasNext() ); + assertThat( eventList ).extracting( "name" ).containsExactly( + "head", "head_", "body", "paragraph", "text", "figureGraphics", "text", "paragraph_", "body_" ); } /** @@ -224,11 +215,10 @@ public class MarkdownParserTest public void testLinkSinkEvent() throws Exception { - Iterator<SinkEventElement> it = parseFileToEventTestingSink( "link" ).getEventList().iterator(); + List<SinkEventElement> eventList = parseFileToEventTestingSink( "link" ).getEventList(); - assertEquals( it, "head", "head_", "body", "paragraph", "text", "link", "text", "link_", "text", "paragraph_", "body_" ); - - assertFalse( it.hasNext() ); + assertThat( eventList ).extracting( "name" ).containsExactly( + "head", "head_", "body", "paragraph", "text", "link", "text", "link_", "text", "paragraph_", "body_" ); } /** @@ -241,23 +231,20 @@ public class MarkdownParserTest { List<SinkEventElement> eventList = parseFileToEventTestingSink( "link_rewrite" ).getEventList(); - Iterator<SinkEventElement> it = eventList.iterator(); - assertEquals( it, "head", "head_", "body", "paragraph", "text", "link", "text", "link_", "text", "link", "text", + assertThat( eventList ).extracting( "name" ).containsExactly( + "head", "head_", "body", "paragraph", "text", "link", "text", "link_", "text", "link", "text", "link_", "text", "paragraph_", "body_" ); - assertFalse( it.hasNext() ); - assertEquals( "doc.html", eventList.get( 5 ).getArgs()[0] ); assertEquals( "ftp://doc.md", eventList.get( 9 ).getArgs()[0] ); } public void testLinkWithAnchorAndQuery() throws Exception { - Iterator<SinkEventElement> it = parseFileToEventTestingSink( "link_anchor_query" ).getEventList().iterator(); + List<SinkEventElement> eventList = parseFileToEventTestingSink( "link_anchor_query" ).getEventList(); - assertEquals( it, "head", "head_", "body", "paragraph", "link", "text", "link_", "paragraph_", "body_" ); - - assertFalse( it.hasNext() ); + assertThat( eventList ).extracting( "name" ).containsExactly( + "head", "head_", "body", "paragraph", "link", "text", "link_", "paragraph_", "body_" ); } /** @@ -268,12 +255,11 @@ public class MarkdownParserTest public void testListSinkEvent() throws Exception { - Iterator<SinkEventElement> it = parseFileToEventTestingSink( "list" ).getEventList().iterator(); + List<SinkEventElement> eventList = parseFileToEventTestingSink( "list" ).getEventList(); - assertEquals( it, "head", "head_", "body", "list", "text", "listItem", "text", "listItem_", "listItem", "text", + assertThat( eventList ).extracting( "name" ).containsExactly( + "head", "head_", "body", "list", "text", "listItem", "text", "listItem_", "listItem", "text", "listItem_", "text", "list_", "body_" ); - - assertFalse( it.hasNext() ); } /** @@ -284,12 +270,11 @@ public class MarkdownParserTest public void testNumberedListSinkEvent() throws Exception { - Iterator<SinkEventElement> it = parseFileToEventTestingSink( "numbered-list" ).getEventList().iterator(); + List<SinkEventElement> eventList = parseFileToEventTestingSink( "numbered-list" ).getEventList(); - assertEquals( it, "head", "head_", "body", "numberedList", "text", "numberedListItem", "text", "numberedListItem_", + assertThat( eventList ).extracting( "name" ).containsExactly( + "head", "head_", "body", "numberedList", "text", "numberedListItem", "text", "numberedListItem_", "numberedListItem", "text", "numberedListItem_", "text", "numberedList_", "body_" ); - - assertFalse( it.hasNext() ); } /** @@ -301,15 +286,13 @@ public class MarkdownParserTest throws Exception { List<SinkEventElement> eventList = parseFileToEventTestingSink( "metadata" ).getEventList(); - Iterator<SinkEventElement> it = eventList.iterator(); - assertEquals( it, "head", "title", "text", "text", "text", "title_", "author", "text", "author_", "date", "text", "date_", + assertThat( eventList ).extracting( "name" ).containsExactly( + "head", "title", "text", "text", "text", "title_", "author", "text", "author_", "date", "text", "date_", "unknown", "head_", "body", "unknown", "text", "unknown", "paragraph", "text", "paragraph_", "section1", "sectionTitle1", "text", "sectionTitle1_", "paragraph", "text", "paragraph_", "section1_", "body_" ); - assertFalse( it.hasNext() ); - // Title must be "A Title & a Test" assertEquals( "A Title ", eventList.get( 2 ).getArgs()[0]); assertEquals( "&", eventList.get( 3 ).getArgs()[0]); @@ -340,14 +323,13 @@ public class MarkdownParserTest public void testFirstHeadingSinkEvent() throws Exception { - Iterator<SinkEventElement> it = parseFileToEventTestingSink( "first-heading" ).getEventList().iterator(); + List<SinkEventElement> eventList = parseFileToEventTestingSink( "first-heading" ).getEventList(); // NOTE: H1 is rendered as "unknown" and H2 is "section1" (see DOXIA-203) - assertEquals( it, "head", "title", "text", "title_", "head_", "body", "comment", "text", + assertThat( eventList ).extracting( "name" ).containsExactly( + "head", "title", "text", "title_", "head_", "body", "comment", "text", "section1", "sectionTitle1", "text", "sectionTitle1_", "paragraph", "text", "paragraph_", "section1_", "body_" ); - - assertFalse( it.hasNext() ); } /** @@ -358,13 +340,12 @@ public class MarkdownParserTest public void testCommentBeforeHeadingSinkEvent() throws Exception { - Iterator<SinkEventElement> it = parseFileToEventTestingSink( "comment-before-heading" ).getEventList().iterator(); + List<SinkEventElement> eventList = parseFileToEventTestingSink( "comment-before-heading" ).getEventList(); // NOTE: H1 is rendered as "unknown" and H2 is "section1" (see DOXIA-203) - assertEquals( it, "head", "title", "text", "title_", "head_", "body", "comment", "text", "unknown", "text", + assertThat( eventList ).extracting( "name" ).containsExactly( + "head", "title", "text", "title_", "head_", "body", "comment", "text", "unknown", "text", "unknown", "paragraph", "text", "link", "text", "link_", "text", "paragraph_", "body_" ); - - assertFalse( it.hasNext() ); } /** @@ -375,17 +356,16 @@ public class MarkdownParserTest public void testHtmlContent() throws Exception { - Iterator<SinkEventElement> it = parseFileToEventTestingSink( "html-content" ).getEventList().iterator(); + List<SinkEventElement> eventList = parseFileToEventTestingSink( "html-content" ).getEventList(); // NOTE: H1 and DIV are rendered as "unknown" and H2 is "section1" (see DOXIA-203) - assertEquals( it, "head", "head_", "body", "unknown", "text", "paragraph", "inline", "text", + assertThat( eventList ).extracting( "name" ).containsExactly( + "head", "head_", "body", "unknown", "text", "paragraph", "inline", "text", "inline_", "text", "inline", "text", "inline_", "text", "paragraph_", "text", "unknown", "text", "horizontalRule", "unknown", "text", "unknown", "paragraph", "text", "paragraph_", "text", "table", "tableRows", "text", "tableRow", "tableHeaderCell", "text", "tableHeaderCell_", "tableRow_", "text", "tableRow", "tableCell", "text", "tableCell_", "tableRow_", "text", "tableRows_", "table_", "body_" ); - - assertFalse( it.hasNext() ); } /** @@ -408,7 +388,7 @@ public class MarkdownParserTest return sink; } - protected String parseFileToHtml( String file ) throws ParseException, IOException + protected String parseFileToHtml( String file ) throws IOException { try ( Reader reader = getTestReader( file ) ) { @@ -416,12 +396,19 @@ public class MarkdownParserTest } } + public void testTocMacro2() throws IOException + { + String html = parseFileToHtml( "macro-toc" ); + assertThat( html ).contains( "<!-- MACRO{toc|fromDepth=1|toDepth=2} -->" ); + } + public void testTocMacro() throws Exception { - Iterator<SinkEventElement> it = parseFileToEventTestingSink( "macro-toc" ).getEventList().iterator(); + List<SinkEventElement> eventList = parseFileToEventTestingSink( "macro-toc" ).getEventList(); - assertEquals( it, "head", "title", "text", "title_", "head_", + assertThat( eventList ).extracting( "name" ).containsExactly( + "head", "title", "text", "title_", "head_", "body", "list", // TOC start "listItem", "link", "text", "link_", // emtpy section 2 TOC entry @@ -443,28 +430,29 @@ public class MarkdownParserTest public void testTocMacroDoxia559() throws Exception { - Iterator<SinkEventElement> it = parseFileToEventTestingSink( "macro-toc-DOXIA-559" ).getEventList().iterator(); - - assertEquals( it, "head", "title", "text", "title_", "head_", - "body", - "list", // TOC start - "listItem", "link", "text", "link_", // first section 2 TOC entry - "list", // sections 3 list start - "listItem", "link", "text", "link_", "listItem_", // empty section 3 TOC entry - "list_", // sections 3 list end - "listItem_", // first section 2 TOC entry end - "listItem", "link", "text", "link_", "listItem_", // second section 2 TOC entry - "list_", // TOC end - "text", - "section1", "sectionTitle1", "text", "sectionTitle1_", - "section2", - "section3", "sectionTitle3", "text", "sectionTitle3_", - "section3_", - "section2_", - "section1_", - "section1", "sectionTitle1", "text", "sectionTitle1_", - "section1_", - "body_" ); + List<SinkEventElement> list = parseFileToEventTestingSink( "macro-toc-DOXIA-559" ).getEventList(); + + assertThat( list ).extracting( "name" ).containsExactly( + "head", "title", "text", "title_", "head_", + "body", + "list", // TOC start + "listItem", "link", "text", "link_", // first section 2 TOC entry + "list", // sections 3 list start + "listItem", "link", "text", "link_", "listItem_", // empty section 3 TOC entry + "list_", // sections 3 list end + "listItem_", // first section 2 TOC entry end + "listItem", "link", "text", "link_", "listItem_", // second section 2 TOC entry + "list_", // TOC end + "text", + "section1", "sectionTitle1", "text", "sectionTitle1_", + "section2", + "section3", "sectionTitle3", "text", "sectionTitle3_", + "section3_", + "section2_", + "section1_", + "section1", "sectionTitle1", "text", "sectionTitle1_", + "section1_", + "body_" ); } // test fix for https://github.com/vsch/flexmark-java/issues/384
