3030import org .apache .fesod .sheet .converters .ConverterKeyBuild ;
3131import org .apache .fesod .sheet .util .TestFileUtil ;
3232import org .apache .fesod .sheet .write .builder .ExcelWriterSheetBuilder ;
33+ import org .apache .fesod .sheet .write .metadata .holder .WriteSheetHolder ;
3334import org .junit .jupiter .api .Assertions ;
3435import org .junit .jupiter .api .BeforeAll ;
3536import org .junit .jupiter .api .MethodOrderer ;
@@ -42,12 +43,16 @@ public class CustomConverterTest {
4243 private static File converterCsvFile10 ;
4344 private static File converterExcelFile11 ;
4445 private static File converterExcelFile12 ;
46+ private static File converterExcelFile13 ;
47+ private static File converterCsvFile14 ;
4548
4649 @ BeforeAll
4750 static void init () {
4851 converterCsvFile10 = TestFileUtil .createNewFile ("converter10.csv" );
4952 converterExcelFile11 = TestFileUtil .createNewFile ("converter11.xls" );
5053 converterExcelFile12 = TestFileUtil .createNewFile ("converter12.xlsx" );
54+ converterExcelFile13 = TestFileUtil .createNewFile ("converter13.xlsx" );
55+ converterCsvFile14 = TestFileUtil .createNewFile ("converter14.csv" );
5156 }
5257
5358 @ Test
@@ -83,6 +88,28 @@ void t04Write12() throws Exception {
8388 writeFile (converterExcelFile12 );
8489 }
8590
91+ @ Test
92+ void t05GlobalConverterInSheetHolder () throws Exception {
93+ TimestampStringConverter timestampStringConverter = new TimestampStringConverter ();
94+ ExcelWriter excelWriter = FesodSheet .write (converterExcelFile13 )
95+ .registerConverter (timestampStringConverter )
96+ .build ();
97+ excelWriter .write (data (), new ExcelWriterSheetBuilder ().sheetNo (0 ).build ());
98+ WriteSheetHolder sheetHolder = excelWriter .writeContext ().writeSheetHolder ();
99+ Map <ConverterKeyBuild .ConverterKey , Converter <?>> sheetConverterMap = sheetHolder .converterMap ();
100+ excelWriter .finish ();
101+ Assertions .assertTrue (sheetConverterMap .containsKey (ConverterKeyBuild .buildKey (
102+ timestampStringConverter .supportJavaTypeKey (), timestampStringConverter .supportExcelTypeKey ())));
103+ }
104+
105+ @ Test
106+ void t06GlobalConverterWriteWithoutFieldLevelConverter () throws Exception {
107+ FesodSheet .write (converterCsvFile14 )
108+ .registerConverter (new TimestampStringConverter ())
109+ .sheet ()
110+ .doWrite (globalData ());
111+ }
112+
86113 private void writeFile (File file ) throws Exception {
87114 FesodSheet .write (file )
88115 .registerConverter (new TimestampNumberConverter ())
@@ -91,6 +118,14 @@ private void writeFile(File file) throws Exception {
91118 .doWrite (data ());
92119 }
93120
121+ private List <GlobalConverterWriteData > globalData () throws Exception {
122+ List <GlobalConverterWriteData > list = new ArrayList <>();
123+ GlobalConverterWriteData writeData = new GlobalConverterWriteData ();
124+ writeData .setTimestampData (Timestamp .valueOf ("2020-01-01 01:00:00" ));
125+ list .add (writeData );
126+ return list ;
127+ }
128+
94129 private List <CustomConverterWriteData > data () throws Exception {
95130 List <CustomConverterWriteData > list = new ArrayList <>();
96131 CustomConverterWriteData writeData = new CustomConverterWriteData ();
0 commit comments