improve unit test error messages

git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1791445 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Javen O'Neal 2017-04-15 03:21:34 +00:00
parent ef8c9329cf
commit 0acf44d3dc

View File

@ -25,6 +25,9 @@ import static org.apache.poi.POITestCase.assertNotContained;
import java.io.IOException; import java.io.IOException;
import java.util.regex.Matcher; import java.util.regex.Matcher;
import java.util.regex.Pattern; import java.util.regex.Pattern;
import java.util.Map;
import java.util.Map.Entry;
import java.util.HashMap;
import junit.framework.TestCase; import junit.framework.TestCase;
import org.apache.poi.POITextExtractor; import org.apache.poi.POITextExtractor;
@ -133,15 +136,18 @@ public class TestXSSFExcelExtractor extends TestCase {
ExcelExtractor ole2Extractor = ExcelExtractor ole2Extractor =
new ExcelExtractor(HSSFTestDataSamples.openSampleWorkbook("SampleSS.xls")); new ExcelExtractor(HSSFTestDataSamples.openSampleWorkbook("SampleSS.xls"));
POITextExtractor[] extractors = Map<String, POITextExtractor> extractors = new HashMap<String, POITextExtractor>();
new POITextExtractor[] { ooxmlExtractor, ole2Extractor }; extractors.put("SampleSS.xlsx", ooxmlExtractor);
extractors.put("SampleSS.xls", ole2Extractor);
for (POITextExtractor extractor : extractors) { for (final Entry<String, POITextExtractor> e : extractors.entrySet()) {
String filename = e.getKey();
POITextExtractor extractor = e.getValue();
String text = extractor.getText().replaceAll("[\r\t]", ""); String text = extractor.getText().replaceAll("[\r\t]", "");
assertStartsWith(text, "First Sheet\nTest spreadsheet\n2nd row2nd row 2nd column\n"); assertStartsWith(filename, text, "First Sheet\nTest spreadsheet\n2nd row2nd row 2nd column\n");
Pattern pattern = Pattern.compile(".*13(\\.0+)?\\s+Sheet3.*", Pattern.DOTALL); Pattern pattern = Pattern.compile(".*13(\\.0+)?\\s+Sheet3.*", Pattern.DOTALL);
Matcher m = pattern.matcher(text); Matcher m = pattern.matcher(text);
assertTrue(m.matches()); assertTrue(filename, m.matches());
} }
ole2Extractor.close(); ole2Extractor.close();
@ -161,8 +167,8 @@ public class TestXSSFExcelExtractor extends TestCase {
XSSFExcelExtractor extractor = getExtractor(sampleName); XSSFExcelExtractor extractor = getExtractor(sampleName);
String text = extractor.getText(); String text = extractor.getText();
assertTrue("Unable to find expected word in text from " + sampleName + "\n" + text, text.contains("testdoc")); assertContains(sampleName, text, "testdoc");
assertContains(text, "test phrase"); assertContains(sampleName, text, "test phrase");
extractor.close(); extractor.close();
} }
@ -221,9 +227,9 @@ public class TestXSSFExcelExtractor extends TestCase {
try { try {
extractor.setFormulasNotResults(true); extractor.setFormulasNotResults(true);
String text = extractor.getText(); String text = extractor.getText();
assertTrue(text.indexOf("Line 1") > -1); assertContains(text, "Line 1");
assertTrue(text.indexOf("Line 2") > -1); assertContains(text, "Line 2");
assertTrue(text.indexOf("Line 3") > -1); assertContains(text, "Line 3");
} finally { } finally {
extractor.close(); extractor.close();
} }