mirror of https://github.com/apache/poi.git
Improve error messages on missing Factory-implementations, fix Sonar issues and IDE warnings
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1883035 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
a080d2b098
commit
5226ed80dd
|
@ -307,8 +307,10 @@ public final class ExtractorFactory {
|
|||
}
|
||||
}
|
||||
}
|
||||
throw new IOException("Your InputStream was neither an OLE2 stream, nor an OOXML stream " +
|
||||
"or you haven't provide the poi-ooxml*.jar and/or poi-scratchpad*.jar in the classpath/modulepath - FileMagic: "+fm);
|
||||
throw new IOException(
|
||||
"Your InputStream was neither an OLE2 stream, nor an OOXML stream " +
|
||||
"or you haven't provide the poi-ooxml*.jar and/or poi-scratchpad*.jar in the classpath/modulepath - FileMagic: " + fm +
|
||||
", providers: " + Singleton.INSTANCE.provider);
|
||||
}
|
||||
|
||||
public static void addProvider(ExtractorProvider provider){
|
||||
|
|
|
@ -296,7 +296,8 @@ public final class WorkbookFactory {
|
|||
}
|
||||
}
|
||||
throw new IOException("Your InputStream was neither an OLE2 stream, nor an OOXML stream " +
|
||||
"or you haven't provide the poi-ooxml*.jar in the classpath/modulepath - FileMagic: "+fm);
|
||||
"or you haven't provide the poi-ooxml*.jar in the classpath/modulepath - FileMagic: " + fm +
|
||||
", having providers: " + Singleton.INSTANCE.provider);
|
||||
}
|
||||
|
||||
public static void addProvider(WorkbookProvider provider){
|
||||
|
|
|
@ -49,7 +49,7 @@ import org.junit.runners.Parameterized.Parameters;
|
|||
|
||||
@RunWith(Parameterized.class)
|
||||
public class TestHxxFEncryption {
|
||||
@Parameter(value = 0)
|
||||
@Parameter
|
||||
public POIDataSamples sampleDir;
|
||||
|
||||
@Parameter(value = 1)
|
||||
|
|
|
@ -45,12 +45,14 @@ import org.junit.Test;
|
|||
import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTColor;
|
||||
|
||||
public class TestThemesTable {
|
||||
private final String testFileSimple = "Themes.xlsx";
|
||||
private final String testFileComplex = "Themes2.xlsx";
|
||||
// TODO .xls version available too, add HSSF support then check
|
||||
private static final String testFileComplex = "Themes2.xlsx";
|
||||
// TODO .xls version available too, add HSSF support then check
|
||||
|
||||
// For offline testing
|
||||
private static final boolean createFiles = false;
|
||||
|
||||
// What colours they should show up as
|
||||
private static String[] rgbExpected = {
|
||||
private static final String[] rgbExpected = {
|
||||
"ffffff", // Lt1
|
||||
"000000", // Dk1
|
||||
"eeece1", // Lt2
|
||||
|
@ -68,6 +70,7 @@ public class TestThemesTable {
|
|||
@Test
|
||||
public void testThemesTableColors() throws Exception {
|
||||
// Load our two test workbooks
|
||||
String testFileSimple = "Themes.xlsx";
|
||||
XSSFWorkbook simple = XSSFTestDataSamples.openSampleWorkbook(testFileSimple);
|
||||
XSSFWorkbook complex = XSSFTestDataSamples.openSampleWorkbook(testFileComplex);
|
||||
// Save and re-load them, to check for stability across that
|
||||
|
@ -84,13 +87,10 @@ public class TestThemesTable {
|
|||
workbooks.put("Re-Saved_" + testFileSimple, simpleRS);
|
||||
workbooks.put(testFileComplex, complex);
|
||||
workbooks.put("Re-Saved_" + testFileComplex, complexRS);
|
||||
|
||||
|
||||
// Sanity check
|
||||
assertEquals(rgbExpected.length, rgbExpected.length);
|
||||
|
||||
// For offline testing
|
||||
boolean createFiles = false;
|
||||
|
||||
assertEquals(12, rgbExpected.length);
|
||||
|
||||
// Check each workbook in turn, and verify that the colours
|
||||
// for the theme-applied cells in Column A are correct
|
||||
for (String whatWorkbook : workbooks.keySet()) {
|
||||
|
@ -98,7 +98,7 @@ public class TestThemesTable {
|
|||
XSSFSheet sheet = workbook.getSheetAt(0);
|
||||
int startRN = 0;
|
||||
if (whatWorkbook.endsWith(testFileComplex)) startRN++;
|
||||
|
||||
|
||||
for (int rn=startRN; rn<rgbExpected.length+startRN; rn++) {
|
||||
XSSFRow row = sheet.getRow(rn);
|
||||
assertNotNull("Missing row " + rn + " in " + whatWorkbook, row);
|
||||
|
@ -119,7 +119,7 @@ public class TestThemesTable {
|
|||
assertNotNull(ctColor);
|
||||
assertTrue(ctColor.isSetTheme());
|
||||
assertEquals(themeElem.idx, ctColor.getTheme());
|
||||
|
||||
|
||||
// Get the colour, via the theme
|
||||
XSSFColor color = font.getXSSFColor();
|
||||
// Theme colours aren't tinted
|
||||
|
@ -132,7 +132,7 @@ public class TestThemesTable {
|
|||
assertEquals(
|
||||
"Wrong theme index " + expectedThemeIdx + " on " + whatWorkbook,
|
||||
expectedThemeIdx, themeIdx);
|
||||
|
||||
|
||||
if (createFiles) {
|
||||
XSSFCellStyle cs = row.getSheet().getWorkbook().createCellStyle();
|
||||
cs.setFillForegroundColor(color);
|
||||
|
@ -140,7 +140,7 @@ public class TestThemesTable {
|
|||
row.createCell(1).setCellStyle(cs);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if (createFiles) {
|
||||
FileOutputStream fos = new FileOutputStream("Generated_"+whatWorkbook);
|
||||
workbook.write(fos);
|
||||
|
@ -162,8 +162,8 @@ public class TestThemesTable {
|
|||
* Column C = Explicit Colour Foreground
|
||||
* Column E = Explicit Colour Background, Black Foreground
|
||||
* Column G = Conditional Formatting Backgrounds
|
||||
*
|
||||
* Note - Grey Row has an odd way of doing the styling...
|
||||
*
|
||||
* Note - Grey Row has an odd way of doing the styling...
|
||||
*/
|
||||
@Test
|
||||
public void themedAndNonThemedColours() throws IOException {
|
||||
|
@ -239,31 +239,31 @@ public class TestThemesTable {
|
|||
assertNull(color.getARGBHex());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Check the CF colours
|
||||
// TODO
|
||||
}
|
||||
private static void assertCellContents(String expected, XSSFCell cell) {
|
||||
assertNotNull(cell);
|
||||
assertEquals(expected.toLowerCase(Locale.ROOT),
|
||||
assertEquals(expected.toLowerCase(Locale.ROOT),
|
||||
cell.getStringCellValue().toLowerCase(Locale.ROOT));
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
@SuppressWarnings("resource")
|
||||
public void testAddNew() {
|
||||
XSSFWorkbook wb = new XSSFWorkbook();
|
||||
wb.createSheet();
|
||||
assertNull(wb.getTheme());
|
||||
|
||||
|
||||
StylesTable styles = wb.getStylesSource();
|
||||
assertNull(styles.getTheme());
|
||||
|
||||
|
||||
styles.ensureThemesTable();
|
||||
|
||||
|
||||
assertNotNull(styles.getTheme());
|
||||
assertNotNull(wb.getTheme());
|
||||
|
||||
|
||||
wb = XSSFTestDataSamples.writeOutAndReadBack(wb);
|
||||
styles = wb.getStylesSource();
|
||||
assertNotNull(styles.getTheme());
|
||||
|
|
|
@ -18,7 +18,6 @@
|
|||
package org.apache.poi.hssf.record;
|
||||
|
||||
import static org.apache.poi.hssf.record.TestcaseRecordInputStream.confirmRecordEncoding;
|
||||
import static org.junit.Assert.assertArrayEquals;
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.junit.Assert.assertNotEquals;
|
||||
import static org.junit.Assert.assertNotNull;
|
||||
|
@ -115,8 +114,6 @@ public final class TestNameRecord {
|
|||
"EQpiGoagbEQ3NMJCVEMSJiIMhTAMjxdcz2ERGmIaBqEiuqERElENSQhEGMrT+APX2vm3iyMAAA=="
|
||||
);
|
||||
|
||||
assertArrayEquals(data1, data1);
|
||||
|
||||
RecordInputStream in1 = TestcaseRecordInputStream.create(data1);
|
||||
NameRecord nr1 = new NameRecord(in1);
|
||||
assert_bug50244(nr1);
|
||||
|
|
|
@ -175,7 +175,7 @@ public abstract class BaseTestCircularReferences {
|
|||
fe.clearAllCachedResultValues();
|
||||
cv = fe.evaluate(cellB1);
|
||||
// Identified bug 46898
|
||||
assertNotEquals(cv.getCellType(), ErrorEval.CIRCULAR_REF_ERROR.getErrorCode());
|
||||
assertNotEquals(cv.getErrorValue(), ErrorEval.CIRCULAR_REF_ERROR.getErrorCode());
|
||||
assertEquals(CellType.NUMERIC, cv.getCellType());
|
||||
assertEquals(46.0, cv.getNumberValue(), 0.0);
|
||||
|
||||
|
@ -184,7 +184,6 @@ public abstract class BaseTestCircularReferences {
|
|||
cv = fe.evaluate(cellE1);
|
||||
assertEquals(CellType.NUMERIC, cv.getCellType());
|
||||
assertEquals(43.0, cv.getNumberValue(), 0.0);
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -36,7 +36,7 @@ public class TestLocaleUtil {
|
|||
private static final Locale ja_JP = Locale.JAPAN;
|
||||
private static final TimeZone TOKYO = TimeZone.getTimeZone("Asia/Tokyo");
|
||||
private static final Calendar JAPAN_CALENDAR = Calendar.getInstance(TOKYO, ja_JP);
|
||||
|
||||
|
||||
/**
|
||||
* Reset the Locale to the user default before the test so that it isn't influenced
|
||||
* by the LocaleUtil's state being changed by previous tests.
|
||||
|
@ -51,7 +51,7 @@ public class TestLocaleUtil {
|
|||
// http://www.codeaffine.com/2014/07/21/a-junit-rule-to-run-a-test-in-its-own-thread/
|
||||
LocaleUtil.setUserLocale(Locale.getDefault());
|
||||
LocaleUtil.setUserTimeZone(TimeZone.getDefault());
|
||||
|
||||
|
||||
assumeFalse(ja_JP.equals(LocaleUtil.getUserLocale()));
|
||||
assumeFalse(TOKYO.equals(LocaleUtil.getUserTimeZone()));
|
||||
}
|
||||
|
@ -65,48 +65,48 @@ public class TestLocaleUtil {
|
|||
LocaleUtil.resetUserLocale();
|
||||
LocaleUtil.resetUserTimeZone();
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
@SuppressForbidden("implementation around default locales in POI")
|
||||
public void userLocale() {
|
||||
Locale DEFAULT_LOCALE = LocaleUtil.getUserLocale();
|
||||
|
||||
|
||||
assertEquals(DEFAULT_LOCALE, LocaleUtil.getUserLocale());
|
||||
assertNotEquals(ja_JP, LocaleUtil.getUserLocale());
|
||||
|
||||
|
||||
LocaleUtil.setUserLocale(ja_JP);
|
||||
assertEquals(ja_JP, LocaleUtil.getUserLocale());
|
||||
|
||||
|
||||
LocaleUtil.resetUserLocale();
|
||||
assertEquals(DEFAULT_LOCALE, LocaleUtil.getUserLocale());
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
@SuppressForbidden("implementation around default locales in POI")
|
||||
public void userTimeZone() {
|
||||
TimeZone DEFAULT_TIME_ZONE = LocaleUtil.getUserTimeZone();
|
||||
|
||||
|
||||
assertEquals(DEFAULT_TIME_ZONE, LocaleUtil.getUserTimeZone());
|
||||
assertNotEquals(TOKYO, LocaleUtil.getUserLocale());
|
||||
|
||||
assertNotEquals(TOKYO, LocaleUtil.getUserTimeZone());
|
||||
|
||||
LocaleUtil.setUserTimeZone(TOKYO);
|
||||
assertEquals(TOKYO, LocaleUtil.getUserTimeZone());
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
@SuppressForbidden("implementation around default locales in POI")
|
||||
public void localeCalendar() {
|
||||
Locale DEFAULT_LOCALE = LocaleUtil.getUserLocale();
|
||||
TimeZone DEFAULT_TIME_ZONE = LocaleUtil.getUserTimeZone();
|
||||
Calendar DEFAULT_CALENDAR = LocaleUtil.getLocaleCalendar();
|
||||
|
||||
|
||||
assertEquals(DEFAULT_LOCALE, LocaleUtil.getUserLocale());
|
||||
assertEquals(DEFAULT_TIME_ZONE, LocaleUtil.getUserTimeZone());
|
||||
assertCalendarEquals(DEFAULT_CALENDAR, LocaleUtil.getLocaleCalendar());
|
||||
assertNotEquals(ja_JP, LocaleUtil.getUserLocale());
|
||||
assertNotEquals(TOKYO, LocaleUtil.getUserTimeZone());
|
||||
assertCalendarNotEquals(JAPAN_CALENDAR, LocaleUtil.getLocaleCalendar());
|
||||
|
||||
|
||||
LocaleUtil.setUserLocale(ja_JP);
|
||||
LocaleUtil.setUserTimeZone(TOKYO);
|
||||
assertCalendarEquals(JAPAN_CALENDAR, LocaleUtil.getLocaleCalendar());
|
||||
|
@ -115,7 +115,7 @@ public class TestLocaleUtil {
|
|||
//assertCalendarEquals(JAPAN_CALENDAR, LocaleUtil.getLocaleCalendar(2016, 00, 01));
|
||||
//assertCalendarEquals(JAPAN_CALENDAR, LocaleUtil.getLocaleCalendar(2016, 00, 01, 00, 00, 00));
|
||||
}
|
||||
|
||||
|
||||
private static void assertCalendarNotEquals(Calendar expected, Calendar actual) {
|
||||
// FIXME: add more tests to compare calendars, ignoring whether the dates are equal
|
||||
assertNotEquals("time zone", expected.getTimeZone(), actual.getTimeZone());
|
||||
|
|
Loading…
Reference in New Issue