From ecc9437aea1172733beb668348e5a27ebe3e3541 Mon Sep 17 00:00:00 2001 From: Tushar Date: Thu, 21 Sep 2017 09:11:54 -0700 Subject: [PATCH] Updates vendor dep for go-openapi/validate --- Gopkg.lock | 2 +- vendor/github.com/go-openapi/validate/spec.go | 4 +- .../github.com/go-openapi/validate/values.go | 6 ++- .../go-openapi/validate/values_test.go | 37 +++++++++++++++++++ 4 files changed, 44 insertions(+), 5 deletions(-) diff --git a/Gopkg.lock b/Gopkg.lock index 4edd35df14..779d384d76 100644 --- a/Gopkg.lock +++ b/Gopkg.lock @@ -101,7 +101,7 @@ branch = "master" name = "github.com/go-openapi/validate" packages = ["."] - revision = "901ab082554d18fd6a99cc3a4bde6469e58d4cf6" + revision = "dc8a684882cf70c9a529887104340f44e0e138e5" [[projects]] branch = "master" diff --git a/vendor/github.com/go-openapi/validate/spec.go b/vendor/github.com/go-openapi/validate/spec.go index d0f90b9cc9..e8edcb88c2 100644 --- a/vendor/github.com/go-openapi/validate/spec.go +++ b/vendor/github.com/go-openapi/validate/spec.go @@ -48,12 +48,10 @@ import ( // - every default value that is specified must validate against the schema for that property // - items property is required for all schemas/definitions of type `array` func Spec(doc *loads.Document, formats strfmt.Registry) error { - newSpecValidator := NewSpecValidator(doc.Schema(), formats) - errs, _ /*warns*/ := newSpecValidator.Validate(doc) + errs, _ /*warns*/ := NewSpecValidator(doc.Schema(), formats).Validate(doc) if errs.HasErrors() { return errors.CompositeValidationError(errs.Errors...) } - *doc = *(newSpecValidator.expanded) return nil } diff --git a/vendor/github.com/go-openapi/validate/values.go b/vendor/github.com/go-openapi/validate/values.go index ab5ce8af50..67895d1ec6 100644 --- a/vendor/github.com/go-openapi/validate/values.go +++ b/vendor/github.com/go-openapi/validate/values.go @@ -196,7 +196,11 @@ func MinimumUint(path, in string, data, min uint64, exclusive bool) *errors.Vali // MultipleOf validates if the provided number is a multiple of the factor func MultipleOf(path, in string, data, factor float64) *errors.Validation { - if !swag.IsFloat64AJSONInteger(data / factor) { + mult := data / factor + if factor < 1 { + mult = 1 / factor * data + } + if !swag.IsFloat64AJSONInteger(mult) { return errors.NotMultipleOf(path, in, factor) } return nil diff --git a/vendor/github.com/go-openapi/validate/values_test.go b/vendor/github.com/go-openapi/validate/values_test.go index 40a70d6fc3..aea323007b 100644 --- a/vendor/github.com/go-openapi/validate/values_test.go +++ b/vendor/github.com/go-openapi/validate/values_test.go @@ -118,3 +118,40 @@ func TestValidateRequiredNumber(t *testing.T) { err = RequiredNumber("test", "body", 1) assert.Nil(t, err) } + +func TestMultipleOf(t *testing.T) { + + // positive + + err := MultipleOf("test", "body", 9, 3) + assert.Nil(t, err) + + err = MultipleOf("test", "body", 9.3, 3.1) + assert.Nil(t, err) + + err = MultipleOf("test", "body", 9.1, 0.1) + assert.Nil(t, err) + + err = MultipleOf("test", "body", 3, 0.3) + assert.Nil(t, err) + + err = MultipleOf("test", "body", 6, 0.3) + assert.Nil(t, err) + + err = MultipleOf("test", "body", 1, 0.25) + assert.Nil(t, err) + + err = MultipleOf("test", "body", 8, 0.2) + assert.Nil(t, err) + + // negative + + err = MultipleOf("test", "body", 3, 0.4) + assert.Error(t, err) + + err = MultipleOf("test", "body", 9.1, 0.2) + assert.Error(t, err) + + err = MultipleOf("test", "body", 9.34, 0.1) + assert.Error(t, err) +}