nl.hsac.fitnesse.fixture.util.XPathCheckResult Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of hsac-fitnesse-fixtures Show documentation
Show all versions of hsac-fitnesse-fixtures Show documentation
Fixtures to assist in testing via FitNesse
package nl.hsac.fitnesse.fixture.util;
import nl.hsac.fitnesse.fixture.fit.SoapCallMapColumnFixture;
import java.util.ArrayList;
import java.util.List;
/**
* Results from checking xpaths.
*/
public class XPathCheckResult {
private String result = "OK";
private List mismatches = new ArrayList();
private String mismatchDetail;
@Override
public String toString() {
String str = result;
String mismatchDetails = getMismatchDetail();
if (mismatchDetails != null) {
str = mismatchDetails;
}
return str;
}
/**
* Parse method to allow Fitnesse to determine expected values.
* @param value expected value from cell.
* @return object with supplied value as result.
*/
public static XPathCheckResult parse(String value) {
XPathCheckResult parsed = new XPathCheckResult();
parsed.result = value;
return parsed;
}
/**
* Adds a mismatch to this result.
* @param name name of value.
* @param expected expected value.
* @param actual value of XPath expression.
*/
public void addMisMatch(String name, String expected, String actual) {
result = "NOK";
Mismatch mismatch = new Mismatch();
mismatch.name = name;
mismatch.expected = expected;
mismatch.actual = actual;
mismatches.add(mismatch);
}
/**
* @return the mismatchDetail
*/
public String getMismatchDetail() {
String result = mismatchDetail;
if (hasMismatch()) {
StringBuilder builder = new StringBuilder(SoapCallMapColumnFixture.NO_ESCAPE_PREFIX + "NOK:\n\n");
for (Mismatch mismatch : mismatches) {
builder.append(" - ");
builder.append(mismatch.toString());
builder.append("
\n");
}
builder.append("
");
result = builder.toString();
}
return result;
}
/**
* @return whether result has one or more mismatches.
*/
public boolean hasMismatch() {
return !mismatches.isEmpty();
}
/**
* @param aMismatchDetail the mismatchDetail to set
*/
public void setMismatchDetail(String aMismatchDetail) {
result = "NOK";
mismatchDetail = aMismatchDetail;
}
@Override
public boolean equals(Object anObject) {
if (anObject == this) {
return true;
}
if (anObject == null) {
return false;
}
if (anObject instanceof XPathCheckResult) {
return String.valueOf(((XPathCheckResult)anObject).getResult()).equalsIgnoreCase(result);
}
return false;
}
@Override
public int hashCode() {
int ret = 0;
if (result != null) {
ret = result.hashCode();
}
return ret;
}
/**
* @return the result
*/
public String getResult() {
return result;
}
private class Mismatch {
public String name;
public String expected;
public String actual;
@Override
public String toString() {
StringBuilder builder = new StringBuilder();
builder.append(name);
builder.append(": ");
builder.append(expected);
builder.append(" <> ");
builder.append(actual);
return builder.toString();
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy