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>