|
|
|
|
@ -455,3 +455,46 @@ func runTestCases(t *testing.T, cases []testCase) {
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func TestFloatBetween(t *testing.T) {
|
|
|
|
|
cases := map[string]struct {
|
|
|
|
|
Value interface{}
|
|
|
|
|
ValidateFunc schema.SchemaValidateFunc
|
|
|
|
|
ExpectValidationErrors bool
|
|
|
|
|
}{
|
|
|
|
|
"accept valid value": {
|
|
|
|
|
Value: 1.5,
|
|
|
|
|
ValidateFunc: FloatBetween(1.0, 2.0),
|
|
|
|
|
ExpectValidationErrors: false,
|
|
|
|
|
},
|
|
|
|
|
"accept valid value inclusive upper bound": {
|
|
|
|
|
Value: 1.0,
|
|
|
|
|
ValidateFunc: FloatBetween(0.0, 1.0),
|
|
|
|
|
ExpectValidationErrors: false,
|
|
|
|
|
},
|
|
|
|
|
"accept valid value inclusive lower bound": {
|
|
|
|
|
Value: 0.0,
|
|
|
|
|
ValidateFunc: FloatBetween(0.0, 1.0),
|
|
|
|
|
ExpectValidationErrors: false,
|
|
|
|
|
},
|
|
|
|
|
"reject out of range value": {
|
|
|
|
|
Value: -1.0,
|
|
|
|
|
ValidateFunc: FloatBetween(0.0, 1.0),
|
|
|
|
|
ExpectValidationErrors: true,
|
|
|
|
|
},
|
|
|
|
|
"reject incorrectly typed value": {
|
|
|
|
|
Value: 1,
|
|
|
|
|
ValidateFunc: FloatBetween(0.0, 1.0),
|
|
|
|
|
ExpectValidationErrors: true,
|
|
|
|
|
},
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
for tn, tc := range cases {
|
|
|
|
|
_, errors := tc.ValidateFunc(tc.Value, tn)
|
|
|
|
|
if len(errors) > 0 && !tc.ExpectValidationErrors {
|
|
|
|
|
t.Errorf("%s: unexpected errors %s", tn, errors)
|
|
|
|
|
} else if len(errors) == 0 && tc.ExpectValidationErrors {
|
|
|
|
|
t.Errorf("%s: expected errors but got none", tn)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|