package com.processpuzzle.artifact.domain;
import java.io.IOException;
import org.dom4j.DocumentException;
import org.hamcrest.Description;
import org.hamcrest.Factory;
import org.hamcrest.Matcher;
import org.hamcrest.TypeSafeDiagnosingMatcher;
import com.processpuzzle.commons.xml.XmlDocumentComparator;
public class IsSameXml extends TypeSafeDiagnosingMatcher<org.dom4j.Document> {
private final org.dom4j.Document expectedXml;
public IsSameXml( org.dom4j.Document expectedXml ) {
this.expectedXml = expectedXml;
}
@Override
public void describeTo( Description description ) {
description.appendText( "not the same xml" );
}
@Override
protected boolean matchesSafely( org.dom4j.Document subjectXml, Description mismatchDescription ) {
boolean comparisonResult = false;
try{
comparisonResult = XmlDocumentComparator.compareGeneratedDocumentToExpectedDocument( subjectXml, expectedXml );
}catch( IOException e ){
e.printStackTrace();
}catch( DocumentException e ){
e.printStackTrace();
}
return comparisonResult;
}
@Factory
public static <T> Matcher<org.dom4j.Document> isSameXml( org.dom4j.Document operand ) {
return new IsSameXml( operand );
}
}