olamy closed pull request #183: [MNG-6479] Upgrade XMLUnit to 2.2.1
URL: https://github.com/apache/maven/pull/183
This is a PR merged from a forked repository.
As GitHub hides the original diff on merge, it is displayed below for
the sake of provenance:
As this is a foreign pull request (from a fork), the diff is supplied
below (as it won't show otherwise due to GitHub magic):
diff --git a/maven-model-builder/pom.xml b/maven-model-builder/pom.xml
index d447d6c019..a087c36a81 100644
--- a/maven-model-builder/pom.xml
+++ b/maven-model-builder/pom.xml
@@ -71,9 +71,13 @@ under the License.
<scope>test</scope>
</dependency>
<dependency>
- <groupId>xmlunit</groupId>
- <artifactId>xmlunit</artifactId>
- <version>1.6</version>
+ <groupId>org.xmlunit</groupId>
+ <artifactId>xmlunit-core</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.xmlunit</groupId>
+ <artifactId>xmlunit-matchers</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
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 372d0a9b73..7907014185 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" );
}
@@ -102,10 +97,10 @@ public void testFlatUrls()
* 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
@@ -115,46 +110,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" );
@@ -179,17 +177,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" );
@@ -205,12 +198,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 00a21f3dde..318ee4488a 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.
<mailingLists>
<mailingList>
<name>parent</name>
- <post>[email protected]</post>
<subscribe>[email protected]</subscribe>
<unsubscribe>[email protected]</unsubscribe>
+ <post>[email protected]</post>
</mailingList>
</mailingLists>
diff --git a/pom.xml b/pom.xml
index 4e370c01fd..be6cd4adff 100644
--- a/pom.xml
+++ b/pom.xml
@@ -66,6 +66,7 @@ under the License.
<jxpathVersion>1.3</jxpathVersion>
<resolverVersion>1.1.1</resolverVersion>
<slf4jVersion>1.7.25</slf4jVersion>
+ <xmlunitVersion>2.2.1</xmlunitVersion>
<maven.test.redirectTestOutputToFile>true</maven.test.redirectTestOutputToFile>
<!-- Control the name of the distribution and information output by mvn -->
<distributionId>apache-maven</distributionId>
@@ -401,6 +402,18 @@ under the License.
<version>${mockitoVersion}</version>
<scope>test</scope>
</dependency>
+ <dependency>
+ <groupId>org.xmlunit</groupId>
+ <artifactId>xmlunit-core</artifactId>
+ <version>${xmlunitVersion}</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.xmlunit</groupId>
+ <artifactId>xmlunit-matchers</artifactId>
+ <version>${xmlunitVersion}</version>
+ <scope>test</scope>
+ </dependency>
</dependencies>
<!--bootstrap-start-comment-->
</dependencyManagement>
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
[email protected]
With regards,
Apache Git Services