protected TestResult markField(int tableRow, int matchedRow, int col, QueryResults queryResults) { if (col >= fieldNames.size()) return null; // ignore strange table geometry. String fieldName = fieldNames.get(col); String actualValue = queryResults.getCell(fieldName, matchedRow); String expectedValue = table.getCellContents(col, tableRow); TestResult testResult; if (actualValue == null) testResult = TestResult.fail(String.format("field %s not present", fieldName), expectedValue); else if (expectedValue == null || expectedValue.length() == 0) testResult = TestResult.ignore(actualValue); else { testResult = matchMessage(actualValue, expectedValue); // if (testResult != null) // table.substitute(col, tableRow, replaceSymbolsWithFullExpansion(message)); // else // table.substitute(col, tableRow, replaceSymbolsWithFullExpansion(expectedValue)); // else if (testResult == null) testResult = TestResult.fail(actualValue, replaceSymbolsWithFullExpansion(expectedValue)); else if (testResult.getExecutionResult() == ExecutionResult.PASS) testResult = markMatch(tableRow, matchedRow, col, testResult.getMessage()); } table.updateContent(col, tableRow, testResult); getTestContext().increment(testResult.getExecutionResult()); return testResult; }
public String formatTestResult() { if (testResult.getExecutionResult() == null) { return testResult.getMessage() != null ? Utils.escapeHTML(testResult.getMessage()) : originalContent; } final String escapedMessage = testResult.hasMessage() ? Utils.escapeHTML(testResult.getMessage()) : originalContent; switch (testResult.getExecutionResult()) { case PASS: return String.format("<span class=\"pass\">%s</span>", escapedMessage); case FAIL: if (testResult.hasActual() && testResult.hasExpected()) { return String.format( "[%s] <span class=\"fail\">expected [%s]</span>", Utils.escapeHTML(testResult.getActual()), Utils.escapeHTML(testResult.getExpected())); } else if ((testResult.hasActual() || testResult.hasExpected()) && testResult.hasMessage()) { return String.format( "[%s] <span class=\"fail\">%s</span>", Utils.escapeHTML( testResult.hasActual() ? testResult.getActual() : testResult.getExpected()), Utils.escapeHTML(testResult.getMessage())); } return String.format("<span class=\"fail\">%s</span>", escapedMessage); case IGNORE: return String.format( "%s <span class=\"ignore\">%s</span>", originalContent, escapedMessage); case ERROR: return String.format( "%s <span class=\"error\">%s</span>", originalContent, escapedMessage); } return "Should not be here"; }
protected void scanRowForMatch(int tableRow, QueryResults queryResults) { int matchedRow = queryResults.findBestMatch(tableRow); if (matchedRow == -1) { replaceAllvariablesInRow(tableRow); TestResult testResult = TestResult.fail(null, table.getCellContents(0, tableRow), "missing"); table.updateContent(0, tableRow, testResult); getTestContext().increment(testResult.getExecutionResult()); } else { markFieldsInMatchedRow(tableRow, matchedRow, queryResults); } }
private void markMissingFields(List<String> surplusRow, int newTableRow) { for (int col = 0; col < surplusRow.size(); col++) { String surplusField = surplusRow.get(col); if (surplusField == null) { String fieldName = fieldNames.get(col); TestResult testResult = TestResult.fail(String.format("field %s not present", fieldName)); table.updateContent(col, newTableRow, testResult); getTestContext().increment(testResult.getExecutionResult()); } } }
@Override public void updateContent(int rowIndex, TestResult testResult) { rows.get(rowIndex).setExecutionResult(testResult.getExecutionResult()); }