Skip to content

Commit

Permalink
more tests
Browse files Browse the repository at this point in the history
  • Loading branch information
emilien-puget committed Mar 2, 2024
1 parent d4f00a2 commit 8267178
Showing 1 changed file with 61 additions and 1 deletion.
62 changes: 61 additions & 1 deletion parameters/query_parameters_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@ paths:
assert.Nil(t, errors)
}

func TestNewValidator_QueryParamMinimum(t *testing.T) {
func TestNewValidator_QueryParamMinimum_violation(t *testing.T) {
spec := `openapi: 3.1.0
paths:
/a/fishy/on/a/dishy:
Expand Down Expand Up @@ -99,6 +99,36 @@ paths:
assert.Equal(t, "Query parameter 'fishy' failed to validate", errors[0].Message)
}

func TestNewValidator_QueryParamMinimum(t *testing.T) {
spec := `openapi: 3.1.0
paths:
/a/fishy/on/a/dishy:
get:
parameters:
- name: fishy
in: query
required: true
schema:
type: string
minLength: 4
operationId: locateFishy
`

doc, err := libopenapi.NewDocument([]byte(spec))
require.NoError(t, err)
m, errs := doc.BuildV3Model()
require.Len(t, errs, 0)

v := NewParameterValidator(&m.Model)

request, _ := http.NewRequest(http.MethodGet, "https://things.com/a/fishy/on/a/dishy?fishy=salmon", nil)

valid, errors := v.ValidateQueryParams(request)
assert.True(t, valid)

assert.Nil(t, errors)
}

func TestNewValidator_QueryParamPost(t *testing.T) {
spec := `openapi: 3.1.0
paths:
Expand Down Expand Up @@ -401,6 +431,36 @@ paths:

v := NewParameterValidator(&m.Model)

request, _ := http.NewRequest(http.MethodGet, "https://things.com/a/fishy/on/a/dishy?fishy=300", nil)

valid, errors := v.ValidateQueryParams(request)
assert.True(t, valid)

assert.Nil(t, errors)
}

func TestNewValidator_QueryParamMinimumNumber_violation(t *testing.T) {
spec := `openapi: 3.1.0
paths:
/a/fishy/on/a/dishy:
get:
parameters:
- name: fishy
in: query
required: true
schema:
type: number
minimum: 200
operationId: locateFishy
`

doc, err := libopenapi.NewDocument([]byte(spec))
require.NoError(t, err)
m, errs := doc.BuildV3Model()
require.Len(t, errs, 0)

v := NewParameterValidator(&m.Model)

request, _ := http.NewRequest(http.MethodGet, "https://things.com/a/fishy/on/a/dishy?fishy=123", nil)

valid, errors := v.ValidateQueryParams(request)
Expand Down

0 comments on commit 8267178

Please sign in to comment.