mirror of https://github.com/apache/poi.git
bug 58775: add unit test to test for non-built-in data formats
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1721900 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
979bfb39d3
commit
dd7a81df2f
|
@ -19,6 +19,8 @@ package org.apache.poi.ss.usermodel;
|
||||||
|
|
||||||
import junit.framework.TestCase;
|
import junit.framework.TestCase;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
|
|
||||||
import org.apache.poi.ss.ITestDataProvider;
|
import org.apache.poi.ss.ITestDataProvider;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -32,6 +34,11 @@ public abstract class BaseTestDataFormat extends TestCase {
|
||||||
protected BaseTestDataFormat(ITestDataProvider testDataProvider) {
|
protected BaseTestDataFormat(ITestDataProvider testDataProvider) {
|
||||||
_testDataProvider = 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() {
|
public final void testBuiltinFormats() {
|
||||||
Workbook wb = _testDataProvider.createWorkbook();
|
Workbook wb = _testDataProvider.createWorkbook();
|
||||||
|
@ -53,7 +60,7 @@ public abstract class BaseTestDataFormat extends TestCase {
|
||||||
//create a custom data format
|
//create a custom data format
|
||||||
String customFmt = "#0.00 AM/PM";
|
String customFmt = "#0.00 AM/PM";
|
||||||
//check it is not in built-in formats
|
//check it is not in built-in formats
|
||||||
assertEquals(-1, BuiltinFormats.getBuiltinFormat(customFmt));
|
assertNotBuiltInFormat(customFmt);
|
||||||
int customIdx = df.getFormat(customFmt);
|
int customIdx = df.getFormat(customFmt);
|
||||||
//The first user-defined format starts at 164.
|
//The first user-defined format starts at 164.
|
||||||
assertTrue(customIdx >= BuiltinFormats.FIRST_USER_DEFINED_FORMAT_INDEX);
|
assertTrue(customIdx >= BuiltinFormats.FIRST_USER_DEFINED_FORMAT_INDEX);
|
||||||
|
@ -88,6 +95,27 @@ public abstract class BaseTestDataFormat extends TestCase {
|
||||||
assertEquals(poundFmt, dataFormat.getFormat(poundFmtIdx));
|
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 abstract void test58532();
|
||||||
public void doTest58532Core(Workbook wb) {
|
public void doTest58532Core(Workbook wb) {
|
||||||
Sheet s = wb.getSheetAt(0);
|
Sheet s = wb.getSheetAt(0);
|
||||||
|
|
Loading…
Reference in New Issue