|
@@ -198,6 +198,49 @@ func TestUnmarshalIntWithDefault(t *testing.T) {
|
|
assert.Equal(t, 1, in.Int)
|
|
assert.Equal(t, 1, in.Int)
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+func TestUnmarshalBoolSliceRequired(t *testing.T) {
|
|
|
|
+ type inner struct {
|
|
|
|
+ Bools []bool `key:"bools"`
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ var in inner
|
|
|
|
+ assert.NotNil(t, UnmarshalKey(map[string]interface{}{}, &in))
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+func TestUnmarshalBoolSliceNil(t *testing.T) {
|
|
|
|
+ type inner struct {
|
|
|
|
+ Bools []bool `key:"bools,optional"`
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ var in inner
|
|
|
|
+ assert.Nil(t, UnmarshalKey(map[string]interface{}{}, &in))
|
|
|
|
+ assert.Nil(t, in.Bools)
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+func TestUnmarshalBoolSliceNilExplicit(t *testing.T) {
|
|
|
|
+ type inner struct {
|
|
|
|
+ Bools []bool `key:"bools,optional"`
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ var in inner
|
|
|
|
+ assert.Nil(t, UnmarshalKey(map[string]interface{}{
|
|
|
|
+ "bools": nil,
|
|
|
|
+ }, &in))
|
|
|
|
+ assert.Nil(t, in.Bools)
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+func TestUnmarshalBoolSliceEmpty(t *testing.T) {
|
|
|
|
+ type inner struct {
|
|
|
|
+ Bools []bool `key:"bools,optional"`
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ var in inner
|
|
|
|
+ assert.Nil(t, UnmarshalKey(map[string]interface{}{
|
|
|
|
+ "bools": []bool{},
|
|
|
|
+ }, &in))
|
|
|
|
+ assert.Empty(t, in.Bools)
|
|
|
|
+}
|
|
|
|
+
|
|
func TestUnmarshalBoolSliceWithDefault(t *testing.T) {
|
|
func TestUnmarshalBoolSliceWithDefault(t *testing.T) {
|
|
type inner struct {
|
|
type inner struct {
|
|
Bools []bool `key:"bools,default=[true,false]"`
|
|
Bools []bool `key:"bools,default=[true,false]"`
|