package com.processpuzzle.litest.template;
import org.hamcrest.Description;
import org.hamcrest.Factory;
import org.hamcrest.Matcher;
import org.hamcrest.TypeSafeMatcher;
import org.jdom.Document;
import org.jdom.JDOMException;
import org.jdom.xpath.XPath;
public class HasXmlElement extends TypeSafeMatcher<Document>{
private final XPath xpathSelector;
public HasXmlElement( XPath xpathSelector ){
this.xpathSelector = xpathSelector;
}
@Factory public static Matcher<Document> hasXmlElement( XPath xpathSelector ) {
return new HasXmlElement( xpathSelector );
}
@Override public void describeTo( Description description ) {
description.appendText( "document has element value" );
}
@Override public boolean matchesSafely( Document xmlDocument ) {
String searchedElement = null;
try{
searchedElement = xpathSelector.valueOf( xmlDocument );
}catch( JDOMException e ){
e.printStackTrace();
}
return searchedElement != null && searchedElement != "";
}
}