예제 #1
0
 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;
 }
예제 #2
0
 public TestResult matchMessage(String actual, String expected) {
   if (actual == null) return TestResult.fail("NULL");
   if (actual.equals(replaceSymbols(expected)))
     return TestResult.pass(replaceSymbolsWithFullExpansion(expected));
   Comparator c = new Comparator(actual, expected);
   return c.evaluate();
 }
예제 #3
0
 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());
     }
   }
 }
예제 #4
0
 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);
   }
 }
예제 #5
0
 private ExecutionResult markSurplusRows(final QueryResults queryResults) {
   List<Integer> unmatchedRows = queryResults.getUnmatchedRows();
   ExecutionResult result = ExecutionResult.PASS;
   for (int unmatchedRow : unmatchedRows) {
     List<String> surplusRow = queryResults.getList(fieldNames, unmatchedRow);
     int newTableRow = table.addRow(surplusRow);
     TestResult testResult = TestResult.fail(surplusRow.get(0), null, "surplus");
     table.updateContent(0, newTableRow, testResult);
     getTestContext().increment(result);
     markMissingFields(surplusRow, newTableRow);
     result = ExecutionResult.FAIL;
   }
   return result;
 }