import junit.framework.TestCase;
+import java.io.IOException;
+
import org.apache.poi.ss.ITestDataProvider;
/**
protected BaseTestDataFormat(ITestDataProvider testDataProvider) {
_testDataProvider = testDataProvider;
}
+
+ public void assertNotBuiltInFormat(String customFmt) {
+ //check it is not in built-in formats
+ assertEquals(-1, BuiltinFormats.getBuiltinFormat(customFmt));
+ }
public final void testBuiltinFormats() {
Workbook wb = _testDataProvider.createWorkbook();
//create a custom data format
String customFmt = "#0.00 AM/PM";
//check it is not in built-in formats
- assertEquals(-1, BuiltinFormats.getBuiltinFormat(customFmt));
+ assertNotBuiltInFormat(customFmt);
int customIdx = df.getFormat(customFmt);
//The first user-defined format starts at 164.
assertTrue(customIdx >= BuiltinFormats.FIRST_USER_DEFINED_FORMAT_INDEX);
assertEquals(poundFmt, dataFormat.getFormat(poundFmtIdx));
}
+ public void testReadbackFormat() throws IOException {
+ readbackFormat("built-in format", "0.00");
+ readbackFormat("overridden built-in format", poundFmt);
+
+ String customFormat = "#0.00 AM/PM";
+ assertNotBuiltInFormat(customFormat);
+ readbackFormat("custom format", customFormat);
+ }
+
+ private void readbackFormat(String msg, String fmt) throws IOException {
+ Workbook wb = _testDataProvider.createWorkbook();
+ try {
+ DataFormat dataFormat = wb.createDataFormat();
+ short fmtIdx = dataFormat.getFormat(fmt);
+ String readbackFmt = dataFormat.getFormat(fmtIdx);
+ assertEquals(msg, fmt, readbackFmt);
+ } finally {
+ wb.close();
+ }
+ }
+
public abstract void test58532();
public void doTest58532Core(Workbook wb) {
Sheet s = wb.getSheetAt(0);