XHTML Hamcrest Matchers
XhtmlMatchers is a utility class with static methods that create XHTML Hamcrest matchers, to be used in unit tests, for example:
import com.jcabi.matchers.XhtmlMatchers;
import org.hamcrest.MatcherAssert;
public class FooTest {
@Test
public void buildsValidXml() {
MatcherAssert.assertThat(
"<data><employee id='33'><name>Jeff</name></employee></data>",
XhtmlMatchers.hasXPath("/data/employee[@id=33]/name")
);
}
}
Besides that, there is a convenient static method that converts its input to XML, that correctly renders itself in unit test output:
import com.jcabi.matchers.XhtmlMatchers;
import org.hamcrest.MatcherAssert;
public class FooTest {
@Test
public void buildsValidXml() {
Source source = // ... get it somewhere
MatcherAssert.assertThat(
XhtmlMatchers.xhtml(source),
XhtmlMatchers.hasXPath("/data/employee[@id=33]/name")
);
}
}
These dependencies you will need in your pom.xml:
<dependency>
<groupId>org.hamcrest</groupId>
<artifactId>hamcrest-library</artifactId>
<version>1.3</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.hamcrest</groupId>
<artifactId>hamcrest-core</artifactId>
<version>1.3</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.jcabi</groupId>
<artifactId>jcabi-xml</artifactId>
<version>0.7.8</version>
<scope>test</scope>
</dependency>