diff --git a/maven-model-builder/pom.xml b/maven-model-builder/pom.xml index d447d6c0198..a087c36a811 100644 --- a/maven-model-builder/pom.xml +++ b/maven-model-builder/pom.xml @@ -71,9 +71,13 @@ under the License. test - xmlunit - xmlunit - 1.6 + org.xmlunit + xmlunit-core + test + + + org.xmlunit + xmlunit-matchers test diff --git a/maven-model-builder/src/test/java/org/apache/maven/model/inheritance/DefaultInheritanceAssemblerTest.java b/maven-model-builder/src/test/java/org/apache/maven/model/inheritance/DefaultInheritanceAssemblerTest.java index 68dd71ea8bf..cabe1a5331e 100644 --- a/maven-model-builder/src/test/java/org/apache/maven/model/inheritance/DefaultInheritanceAssemblerTest.java +++ b/maven-model-builder/src/test/java/org/apache/maven/model/inheritance/DefaultInheritanceAssemblerTest.java @@ -21,21 +21,16 @@ import org.apache.maven.model.Model; import org.apache.maven.model.building.SimpleProblemCollector; -import org.apache.maven.model.io.ModelParseException; import org.apache.maven.model.io.ModelReader; import org.apache.maven.model.io.ModelWriter; import org.codehaus.plexus.PlexusTestCase; -import org.custommonkey.xmlunit.XMLAssert; -import org.custommonkey.xmlunit.XMLUnit; -import junit.framework.AssertionFailedError; +import org.xmlunit.matchers.CompareMatcher; import java.io.File; -import java.io.FileInputStream; import java.io.IOException; -import java.io.InputStreamReader; -import java.io.Reader; -import java.nio.charset.StandardCharsets; + +import static org.junit.Assert.assertThat; /** * @author Hervé Boutemy @@ -66,7 +61,7 @@ private File getPom( String name ) } private Model getModel( String name ) - throws ModelParseException, IOException + throws IOException { return reader.read( getPom( name ), null ); } @@ -80,7 +75,7 @@ public void testPluginConfiguration() /** * Check most classical urls inheritance: directory structure where parent POM in parent directory * and child directory == artifactId - * @throws Exception + * @throws IOException Model read problem */ public void testUrls() throws Exception @@ -90,10 +85,10 @@ public void testUrls() /** * Flat directory structure: parent & child POMs in sibling directories, child directory == artifactId. - * @throws Exception + * @throws IOException Model read problem */ public void testFlatUrls() - throws Exception + throws IOException { testInheritance( "flat-urls" ); } @@ -112,10 +107,10 @@ public void testNoAppendUrls() * Tricky case: flat directory structure, but child directory != artifactId. * Model interpolation does not give same result when calculated from build or from repo... * This is why MNG-5000 fix in code is marked as bad practice (uses file names) - * @throws Exception + * @throws IOException Model read problem */ public void testFlatTrickyUrls() - throws Exception + throws IOException { // parent references child with artifactId (which is not directory name) // then relative path calculation will fail during build from disk but success when calculated from repo @@ -125,46 +120,49 @@ public void testFlatTrickyUrls() testInheritance( "tricky-flat-artifactId-urls", false ); //fail( "should have failed since module reference == artifactId != directory name" ); } - catch ( AssertionFailedError afe ) + catch ( AssertionError afe ) { // expected failure: wrong relative path calculation assertTrue( afe.getMessage(), - afe.getMessage().contains( "http://www.apache.org/path/to/parent/child-artifact-id/" ) ); + afe.getMessage().contains( + "Expected text value 'http://www.apache.org/path/to/parent/child-artifact-id/' but was " + + "'http://www.apache.org/path/to/parent/../child-artifact-id/'" ) ); } // but ok from repo: local disk is ignored testInheritance( "tricky-flat-artifactId-urls", true ); // parent references child with directory name (which is not artifact id) - // then relative path calculation will success during build from disk but failwhen calculated from repo + // then relative path calculation will success during build from disk but fail when calculated from repo testInheritance( "tricky-flat-directory-urls", false ); try { testInheritance( "tricky-flat-directory-urls", true ); fail( "should have failed since module reference == directory name != artifactId" ); } - catch ( AssertionFailedError afe ) + catch ( AssertionError afe ) { // expected failure - assertTrue( afe.getMessage(), - afe.getMessage().contains( "http://www.apache.org/path/to/parent/child-artifact-id/" ) ); + assertTrue( afe.getMessage(), afe.getMessage().contains( + "Expected text value 'http://www.apache.org/path/to/parent/../child-artifact-id/' but was " + + "'http://www.apache.org/path/to/parent/child-artifact-id/'" ) ); } } public void testWithEmptyUrl() - throws Exception + throws IOException { testInheritance( "empty-urls", false ); } public void testInheritance( String baseName ) - throws Exception + throws IOException { testInheritance( baseName, false ); testInheritance( baseName, true ); } public void testInheritance( String baseName, boolean fromRepo ) - throws Exception + throws IOException { Model parent = getModel( baseName + "-parent" ); @@ -189,17 +187,12 @@ public void testInheritance( String baseName, boolean fromRepo ) // check with getPom( baseName + "-expected" ) File expected = getPom( baseName + "-expected" ); - try ( Reader control = new InputStreamReader( new FileInputStream( expected ), StandardCharsets.UTF_8 ); - Reader test = new InputStreamReader( new FileInputStream( actual ), StandardCharsets.UTF_8 ) ) - { - XMLUnit.setIgnoreComments( true ); - XMLUnit.setIgnoreWhitespace( true ); - XMLAssert.assertXMLEqual( control, test ); - } - } + + assertThat( actual, CompareMatcher.isIdenticalTo( expected ).ignoreComments().ignoreWhitespace() ); + } public void testModulePathNotArtifactId() - throws Exception + throws IOException { Model parent = getModel( "module-path-not-artifactId-parent" ); @@ -215,12 +208,7 @@ public void testModulePathNotArtifactId() // check with getPom( "module-path-not-artifactId-effective" ) File expected = getPom( "module-path-not-artifactId-expected" ); - try ( Reader control = new InputStreamReader( new FileInputStream( expected ), StandardCharsets.UTF_8 ); - Reader test = new InputStreamReader( new FileInputStream( actual ), StandardCharsets.UTF_8 ) ) - { - XMLUnit.setIgnoreComments( true ); - XMLUnit.setIgnoreWhitespace( true ); - XMLAssert.assertXMLEqual( control, test ); - } + + assertThat( actual, CompareMatcher.isIdenticalTo(expected).ignoreComments().ignoreWhitespace() ); } } diff --git a/maven-model-builder/src/test/resources/poms/inheritance/plugin-configuration-expected.xml b/maven-model-builder/src/test/resources/poms/inheritance/plugin-configuration-expected.xml index 00a21f3ddef..318ee4488a6 100644 --- a/maven-model-builder/src/test/resources/poms/inheritance/plugin-configuration-expected.xml +++ b/maven-model-builder/src/test/resources/poms/inheritance/plugin-configuration-expected.xml @@ -34,9 +34,9 @@ under the License. parent - post@mailing.list.com subscribe@mailing.list.com unsubscribe@mailing.list.com + post@mailing.list.com diff --git a/pom.xml b/pom.xml index 4e370c01fd5..be6cd4adff1 100644 --- a/pom.xml +++ b/pom.xml @@ -66,6 +66,7 @@ under the License. 1.3 1.1.1 1.7.25 + 2.2.1 true apache-maven @@ -401,6 +402,18 @@ under the License. ${mockitoVersion} test + + org.xmlunit + xmlunit-core + ${xmlunitVersion} + test + + + org.xmlunit + xmlunit-matchers + ${xmlunitVersion} + test +