diff options
author | Artem Kustikov <artem.kustikov@gmail.com> | 2020-10-04 16:07:39 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-10-04 21:07:39 +0800 |
commit | f2b8798a34aab4411a50861a4cdf47203edc3a19 (patch) | |
tree | 356fa1ee9d5a1324fdc0cb2111cfdd1b265ed82b /styles_test.go | |
parent | 9055a835a8c77b757e14cde22cc9daa3f9f0c66c (diff) |
extend cell value load to support custom datetime format (#703)
* extend cell value load to support custom datetime format
* cleanup incorrect imports
* fix numeric values conversion as done in legacy Excel
* fix tests coverage
* revert temporary package name fix
* remove personal info from test XLSX files
* remove unused dependencies
* update format conversion in parseTime
* new UT to increase code coverage
* Resolve code review issue for PR #703
* Rename broken file name generated by unit test
Co-authored-by: xuri <xuri.me@gmail.com>
Diffstat (limited to 'styles_test.go')
-rw-r--r-- | styles_test.go | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/styles_test.go b/styles_test.go index b68365b..8ce26a4 100644 --- a/styles_test.go +++ b/styles_test.go @@ -201,10 +201,44 @@ func TestNewStyle(t *testing.T) { assert.NoError(t, err) _, err = f.NewStyle(Style{}) assert.EqualError(t, err, "invalid parameter type") + _, err = f.NewStyle(&Style{Font: &Font{Family: strings.Repeat("s", MaxFontFamilyLength+1)}}) assert.EqualError(t, err, "the length of the font family name must be smaller than or equal to 31") _, err = f.NewStyle(&Style{Font: &Font{Size: MaxFontSize + 1}}) assert.EqualError(t, err, "font size must be between 1 and 409 points") + + // new numeric custom style + fmt := "####;####" + f.Styles.NumFmts = nil + styleID, err = f.NewStyle(&Style{ + CustomNumFmt: &fmt, + }) + assert.NoError(t, err) + assert.Equal(t, 2, styleID) + + assert.NotNil(t, f.Styles) + assert.NotNil(t, f.Styles.CellXfs) + assert.NotNil(t, f.Styles.CellXfs.Xf) + + nf := f.Styles.CellXfs.Xf[styleID] + assert.Equal(t, 164, *nf.NumFmtID) + + // new currency custom style + f.Styles.NumFmts = nil + styleID, err = f.NewStyle(&Style{ + Lang: "ko-kr", + NumFmt: 32, // must not be in currencyNumFmt + + }) + assert.NoError(t, err) + assert.Equal(t, 3, styleID) + + assert.NotNil(t, f.Styles) + assert.NotNil(t, f.Styles.CellXfs) + assert.NotNil(t, f.Styles.CellXfs.Xf) + + nf = f.Styles.CellXfs.Xf[styleID] + assert.Equal(t, 32, *nf.NumFmtID) } func TestGetDefaultFont(t *testing.T) { @@ -250,3 +284,15 @@ func TestGetStyleID(t *testing.T) { func TestGetFillID(t *testing.T) { assert.Equal(t, -1, getFillID(NewFile().stylesReader(), &Style{Fill: Fill{Type: "unknown"}})) } + +func TestParseTime(t *testing.T) { + assert.Equal(t, "2019", parseTime("43528", "YYYY")) + assert.Equal(t, "43528", parseTime("43528", "")) + + assert.Equal(t, "2019-03-04 05:05:42", parseTime("43528.2123", "YYYY-MM-DD hh:mm:ss")) + assert.Equal(t, "2019-03-04 05:05:42", parseTime("43528.2123", "YYYY-MM-DD hh:mm:ss;YYYY-MM-DD hh:mm:ss")) + assert.Equal(t, "3/4/2019 5:5:42", parseTime("43528.2123", "M/D/YYYY h:m:s")) + assert.Equal(t, "March", parseTime("43528", "mmmm")) + assert.Equal(t, "Monday", parseTime("43528", "dddd")) + +} |