Add failing unit tests for issue-252
This commit is contained in:
parent
a3571ee39b
commit
a885bb0fb9
|
@ -0,0 +1,134 @@
|
|||
package excelize
|
||||
|
||||
import (
|
||||
"testing"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
)
|
||||
|
||||
func TestSetConditionalFormat(t *testing.T) {
|
||||
cases := []struct {
|
||||
label string
|
||||
format string
|
||||
rules []*xlsxCfRule
|
||||
}{{
|
||||
label: "3_color_scale",
|
||||
format: `[{
|
||||
"type":"3_color_scale",
|
||||
"criteria":"=",
|
||||
"min_type":"num",
|
||||
"mid_type":"num",
|
||||
"max_type":"num",
|
||||
"min_value": "-10",
|
||||
"mid_value": "0",
|
||||
"max_value": "10",
|
||||
"min_color":"ff0000",
|
||||
"mid_color":"00ff00",
|
||||
"max_color":"0000ff"
|
||||
}]`,
|
||||
rules: []*xlsxCfRule{{
|
||||
Priority: 1,
|
||||
Type: "colorScale",
|
||||
ColorScale: &xlsxColorScale{
|
||||
Cfvo: []*xlsxCfvo{{
|
||||
Type: "num",
|
||||
Val: -10,
|
||||
}, {
|
||||
Type: "num",
|
||||
Val: 0,
|
||||
}, {
|
||||
Type: "num",
|
||||
Val: 10,
|
||||
}},
|
||||
Color: []*xlsxColor{{
|
||||
RGB: "FFFF0000",
|
||||
}, {
|
||||
RGB: "FF00FF00",
|
||||
}, {
|
||||
RGB: "FF0000FF",
|
||||
}},
|
||||
},
|
||||
}},
|
||||
}, {
|
||||
label: "3_color_scale default min/mid/max",
|
||||
format: `[{
|
||||
"type":"3_color_scale",
|
||||
"criteria":"=",
|
||||
"min_type":"num",
|
||||
"mid_type":"num",
|
||||
"max_type":"num",
|
||||
"min_color":"ff0000",
|
||||
"mid_color":"00ff00",
|
||||
"max_color":"0000ff"
|
||||
}]`,
|
||||
rules: []*xlsxCfRule{{
|
||||
Priority: 1,
|
||||
Type: "colorScale",
|
||||
ColorScale: &xlsxColorScale{
|
||||
Cfvo: []*xlsxCfvo{{
|
||||
Type: "num",
|
||||
Val: 0,
|
||||
}, {
|
||||
Type: "num",
|
||||
Val: 50,
|
||||
}, {
|
||||
Type: "num",
|
||||
Val: 0,
|
||||
}},
|
||||
Color: []*xlsxColor{{
|
||||
RGB: "FFFF0000",
|
||||
}, {
|
||||
RGB: "FF00FF00",
|
||||
}, {
|
||||
RGB: "FF0000FF",
|
||||
}},
|
||||
},
|
||||
}},
|
||||
}, {
|
||||
label: "2_color_scale default min/max",
|
||||
format: `[{
|
||||
"type":"2_color_scale",
|
||||
"criteria":"=",
|
||||
"min_type":"num",
|
||||
"max_type":"num",
|
||||
"min_color":"ff0000",
|
||||
"max_color":"0000ff"
|
||||
}]`,
|
||||
rules: []*xlsxCfRule{{
|
||||
Priority: 1,
|
||||
Type: "colorScale",
|
||||
ColorScale: &xlsxColorScale{
|
||||
Cfvo: []*xlsxCfvo{{
|
||||
Type: "num",
|
||||
Val: 0,
|
||||
}, {
|
||||
Type: "num",
|
||||
Val: 0,
|
||||
}},
|
||||
Color: []*xlsxColor{{
|
||||
RGB: "FFFF0000",
|
||||
}, {
|
||||
RGB: "FF0000FF",
|
||||
}},
|
||||
},
|
||||
}},
|
||||
}}
|
||||
|
||||
for _, testCase := range cases {
|
||||
xl := NewFile()
|
||||
const sheet = "Sheet1"
|
||||
const cellRange = "A1:A1"
|
||||
|
||||
err := xl.SetConditionalFormat(sheet, cellRange, testCase.format)
|
||||
if err != nil {
|
||||
t.Fatalf("%s", err)
|
||||
}
|
||||
|
||||
xlsx := xl.workSheetReader(sheet)
|
||||
cf := xlsx.ConditionalFormatting
|
||||
assert.Len(t, cf, 1, testCase.label)
|
||||
assert.Len(t, cf[0].CfRule, 1, testCase.label)
|
||||
assert.Equal(t, cellRange, cf[0].SQRef, testCase.label)
|
||||
assert.EqualValues(t, testCase.rules, cf[0].CfRule, testCase.label)
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue