blob: ddada9c0b3f78d39cfb5f3b34b18e35aeaa98714 [file] [log] [blame]
##
## Licensed to the Apache Software Foundation (ASF) under one
## or more contributor license agreements. See the NOTICE file
## distributed with this work for additional information
## regarding copyright ownership. The ASF licenses this file
## to you under the Apache License, Version 2.0 (the
## "License"); you may not use this file except in compliance
## with the License. You may obtain a copy of the License at
##
## http://www.apache.org/licenses/LICENSE-2.0
##
## Unless required by applicable law or agreed to in writing,
## software distributed under the License is distributed on an
## "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
## KIND, either express or implied. See the License for the
## specific language governing permissions and limitations
## under the License.
##
Introduction
------------
This `xml-truth` module provides a [Google Truth](https://github.com/google/truth) extension to
compare XML data. It can be used as an alternative to [XMLUnit](http://www.xmlunit.org/). The basic
usage is as follows:
assertAbout(xml()).that(actual).hasSameContentAs(expected);
This relies on the following static imports being present:
import static com.google.common.truth.Truth.assertAbout;
import static org.apache.axiom.truth.xml.XMLTruth.xml;
`actual` and `expected` are objects that represent XML data. The following types are currently
supported:
* `InputStream`, `Reader`, `String` and `byte[]` with XML data to be parsed
* `javax.xml.transform.stream.StreamSource` and `org.xml.sax.InputSource`
* DOM `Document` or `Element` nodes
* `java.net.URL`
* `javax.xml.stream.XMLStreamReader`
By default, comparison is strict. E.g. the following assertion would fail:
assertAbout(xml()).that("<p:a xmlns:p='urn:ns'/>").hasSameContentAs("<a xmlns='urn:ns'/>");
To control how the comparison is performed, use the relevant methods on the
[`XMLSubject`](apidocs/org/apache/axiom/truth/xml/XMLSubject.html) object returned by `that()`:
<!-- MACRO{snippet|id=sample|file=${project.basedir}/src/test/java/org/apache/axiom/truth/xml/XMLSubjectTest.java} -->