package nl.hsac.fitnesse.fixture.util;
import org.junit.Test;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
/**
* Tests XPathCheckResult.
*/
public class XPathCheckResultTest {
@Test
public void testHashCodeAndEquals() {
XPathCheckResult checkResult = new XPathCheckResult();
XPathCheckResult checkResult2 = new XPathCheckResult();
resultsMatch(checkResult, checkResult2);
checkResult.setMismatchDetail("NOK: a");
checkResult2.addMisMatch("name", "expected", "actual");
resultsMatch(checkResult, checkResult2);
checkResult2 = new XPathCheckResult();
resultsDontMatch(checkResult, checkResult2);
}
@Test
public void testParse() {
XPathCheckResult checkResult = new XPathCheckResult();
XPathCheckResult checkResult2 = XPathCheckResult.parse("OK");
resultsMatch(checkResult, checkResult2);
checkResult.setMismatchDetail("NOK: a");
checkResult2 = XPathCheckResult.parse("NOK");
resultsMatch(checkResult, checkResult2);
checkResult2 = XPathCheckResult.parse("OK");
resultsDontMatch(checkResult, checkResult2);
}
private void resultsDontMatch(XPathCheckResult checkResult, XPathCheckResult checkResult2) {
assertFalse(checkResult.equals(checkResult2));
assertTrue(checkResult.hashCode() != checkResult2.hashCode());
}
private void resultsMatch(XPathCheckResult checkResult, XPathCheckResult checkResult2) {
assertEquals(checkResult, checkResult2);
assertEquals(checkResult.hashCode(), checkResult2.hashCode());
}
}