aboutsummaryrefslogtreecommitdiffstats
path: root/src/testcases/org/apache/poi/ss/util/TestDateFormatConverter.java
diff options
context:
space:
mode:
authorAndreas Beeker <kiwiwings@apache.org>2021-03-27 14:03:16 +0000
committerAndreas Beeker <kiwiwings@apache.org>2021-03-27 14:03:16 +0000
commit37791e4bdfc706aa5684745594260f243b4be7ee (patch)
treea8dd8d0976fc478074d52cd3de79e0e6b5e6a33a /src/testcases/org/apache/poi/ss/util/TestDateFormatConverter.java
parent2bb3839bfe3e3bacff79f8157465633e311239ce (diff)
downloadpoi-37791e4bdfc706aa5684745594260f243b4be7ee.tar.gz
poi-37791e4bdfc706aa5684745594260f243b4be7ee.zip
65206 - Migrate ant / maven to gradle build
update gradle files and project structure along https://github.com/centic9/poi/tree/gradle_build remove eclipse IDE project files remove obsolete record generator files git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1888111 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'src/testcases/org/apache/poi/ss/util/TestDateFormatConverter.java')
-rw-r--r--src/testcases/org/apache/poi/ss/util/TestDateFormatConverter.java183
1 files changed, 0 insertions, 183 deletions
diff --git a/src/testcases/org/apache/poi/ss/util/TestDateFormatConverter.java b/src/testcases/org/apache/poi/ss/util/TestDateFormatConverter.java
deleted file mode 100644
index befe219a16..0000000000
--- a/src/testcases/org/apache/poi/ss/util/TestDateFormatConverter.java
+++ /dev/null
@@ -1,183 +0,0 @@
-/*
- * ====================================================================
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ====================================================================
- */
-
-package org.apache.poi.ss.util;
-
-import static java.text.DateFormat.getDateInstance;
-import static java.text.DateFormat.getDateTimeInstance;
-import static java.text.DateFormat.getTimeInstance;
-import static org.apache.poi.ss.util.DateFormatConverter.getPrefixForLocale;
-import static org.junit.jupiter.api.Assertions.assertDoesNotThrow;
-import static org.junit.jupiter.api.Assertions.assertEquals;
-import static org.junit.jupiter.api.Assertions.assertNotEquals;
-import static org.junit.jupiter.api.Assertions.assertNotNull;
-import static org.junit.jupiter.api.Assertions.assertTrue;
-
-import java.text.DateFormat;
-import java.text.SimpleDateFormat;
-import java.util.Arrays;
-import java.util.Comparator;
-import java.util.Date;
-import java.util.Locale;
-import java.util.Set;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-import java.util.stream.Collectors;
-import java.util.stream.IntStream;
-import java.util.stream.Stream;
-
-import org.apache.poi.hssf.usermodel.HSSFWorkbook;
-import org.apache.poi.ss.usermodel.Cell;
-import org.apache.poi.ss.usermodel.CellStyle;
-import org.apache.poi.ss.usermodel.DataFormat;
-import org.apache.poi.ss.usermodel.Row;
-import org.apache.poi.ss.usermodel.Sheet;
-import org.apache.poi.ss.usermodel.Workbook;
-import org.apache.poi.util.LocaleID;
-import org.apache.poi.util.NullOutputStream;
-import org.junit.jupiter.api.Test;
-import org.junit.jupiter.params.ParameterizedTest;
-import org.junit.jupiter.params.provider.CsvSource;
-
-final class TestDateFormatConverter {
- @ParameterizedTest
- @CsvSource({
- "true, false, " + DateFormat.DEFAULT + ", Default",
- "true, false, " + DateFormat.SHORT + ", Short",
- "true, false, " + DateFormat.MEDIUM + ", Medium",
- "true, false, " + DateFormat.LONG + ", Long",
- "true, false, " + DateFormat.FULL + ", Full",
- "true, true, " + DateFormat.DEFAULT + ", Default",
- "true, true, " + DateFormat.SHORT + ", Short",
- "true, true, " + DateFormat.MEDIUM + ", Medium",
- "true, true, " + DateFormat.LONG + ", Long",
- "true, true, " + DateFormat.FULL + ", Full",
- "false, true, " + DateFormat.DEFAULT + ", Default",
- "false, true, " + DateFormat.SHORT + ", Short",
- "false, true, " + DateFormat.MEDIUM + ", Medium",
- "false, true, " + DateFormat.LONG + ", Long",
- "false, true, " + DateFormat.FULL + ", Full"
- })
- void testJavaDateFormatsInExcel(boolean dates, boolean times, int style, String styleName ) throws Exception {
- String sheetName = (dates) ? ((times) ? "DateTimes" : "Dates") : "Times";
- String[] headers = {
- "locale", "DisplayName", "Excel " + styleName, "java.text.DateFormat",
- "Equals", "Java pattern", "Excel pattern"
- };
-
- Locale[] locales = Arrays.stream(DateFormat.getAvailableLocales())
- // only use locale with known LocaleIDs
- .filter(l -> !getPrefixForLocale(l).isEmpty() || Locale.ROOT.equals(l) || l.toLanguageTag().isEmpty())
- .sorted(Comparator.comparing(Locale::toString))
- .toArray(Locale[]::new);
-
-
- try (Workbook workbook = new HSSFWorkbook()) {
- Sheet sheet = workbook.createSheet(sheetName);
- Row header = sheet.createRow(0);
- IntStream.range(0, headers.length).forEach(i -> header.createCell(i).setCellValue(headers[i]));
-
- int rowNum = 1;
- final Cell[] cell = new Cell[7];
- final Date date = new Date();
-
- for (Locale locale : locales) {
- DateFormat dateFormat = (dates)
- ? (times ? getDateTimeInstance(style, style, locale) : getDateInstance(style, locale))
- : getTimeInstance(style, locale);
- String javaDateFormatPattern = ((SimpleDateFormat) dateFormat).toPattern();
- String excelFormatPattern = DateFormatConverter.convert(locale, javaDateFormatPattern);
-
- Row row = sheet.createRow(rowNum++);
- IntStream.range(0, headers.length).forEach(i -> cell[i] = row.createCell(i));
- CellStyle cellStyle = workbook.createCellStyle();
- DataFormat poiFormat = workbook.createDataFormat();
- cellStyle.setDataFormat(poiFormat.getFormat(excelFormatPattern));
-
- cell[0].setCellValue(locale.toString());
- cell[1].setCellValue(locale.getDisplayName(Locale.ROOT));
- cell[2].setCellValue(date);
- cell[2].setCellStyle(cellStyle);
- cell[3].setCellValue(dateFormat.format(date));
-
- // the formula returns TRUE is the formatted date in column C equals to the string in column D
- cell[4].setCellFormula("TEXT(C" + rowNum + ",G" + rowNum + ")=D" + rowNum);
- cell[5].setCellValue(javaDateFormatPattern);
- cell[6].setCellValue(excelFormatPattern);
- }
-
- assertDoesNotThrow(() -> workbook.write(new NullOutputStream()));
- }
- }
-
- @Test
- void testJDK8EmptyLocale() {
- // JDK 8 seems to add an empty locale-string to the list returned via DateFormat.getAvailableLocales()
- // therefore we now cater for this special locale as well
- String prefix = getPrefixForLocale(new Locale(""));
- assertEquals("", prefix);
- }
-
- @Test
- void testJDK11MyLocale() {
- DateFormat df = getDateTimeInstance(DateFormat.DEFAULT, DateFormat.DEFAULT, Locale.forLanguageTag("my"));
- assertNotNull(df);
- }
-
- @Test
- void testAllKnownLocales() {
- Pattern p = Pattern.compile("\\[\\$-(\\p{XDigit}+)]");
-
- Set<String> excludeList = Stream.of(
- "sd-Deva", "tzm-Arab", "fuv", "plt", "yue", "tdd-Tale", "tdd",
- "khb-Talu", "khb", "qps", "ja-Ploc", "dz", "tmz", "ar-Ploc"
- ).collect(Collectors.toSet());
-
- for (LocaleID lid : LocaleID.values()) {
- final String langTag = lid.getLanguageTag();
-
- if (langTag.isEmpty() || lid.getWindowsId().startsWith("invalid")) {
- continue;
- }
-
- // test all from variant to parent locales
- String cmpTag = (langTag.indexOf('_') > 0) ? langTag.replace('_','-') : langTag;
- for (int idx = langTag.length(); idx > 0; idx = cmpTag.lastIndexOf('-', idx-1)) {
- final String partTag = langTag.substring(0, idx);
-
- Locale loc = Locale.forLanguageTag(partTag);
- assertNotNull(loc, "Invalid language tag: "+partTag);
-
- if (excludeList.contains(partTag)) {
- continue;
- }
-
- String prefix = getPrefixForLocale(loc);
- assertNotNull(prefix, "Prefix not found - language tag: "+partTag);
- assertNotEquals("", prefix, "Prefix not found - language tag: "+partTag);
- Matcher m = p.matcher(prefix);
- assertTrue(m.matches(), "Invalid prefix: "+prefix);
-
- LocaleID partLid = LocaleID.lookupByLanguageTag(partTag);
- assertNotNull(partLid, "LocaleID not found for part: "+partTag);
- assertEquals(partLid.getLcid(), Integer.parseInt(m.group(1), 16));
- }
- }
- }
-}