File: security_requirements_test.go

package info (click to toggle)
golang-github-getkin-kin-openapi 0.124.0-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 4,288 kB
  • sloc: sh: 344; makefile: 4
file content (64 lines) | stat: -rw-r--r-- 1,389 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
package openapi3

import (
	"encoding/json"
	"testing"

	"github.com/stretchr/testify/require"
)

func TestSecurityRequirementsEncoding(t *testing.T) {

	tests := []struct {
		requirements *SecurityRequirements
		json         string
	}{
		{
			requirements: NewSecurityRequirements(),
			json:         `[]`,
		},
		{
			requirements: NewSecurityRequirements().With(NewSecurityRequirement()),
			json:         `[{}]`,
		},
	}

	for _, test := range tests {

		b, err := json.Marshal(test.requirements)
		require.NoError(t, err)
		require.Equal(t, test.json, string(b), "incorrect requirements encoding")
	}
}

func TestSecurityRequirementEncoding(t *testing.T) {

	tests := []struct {
		requirement SecurityRequirement
		json        string
	}{
		{
			requirement: NewSecurityRequirement(),
			json:        `{}`,
		},
		{
			requirement: NewSecurityRequirement().Authenticate("provider"),
			json:        `{"provider":[]}`,
		},
		{
			requirement: NewSecurityRequirement().Authenticate("provider", "scope1"),
			json:        `{"provider":["scope1"]}`,
		},
		{
			requirement: NewSecurityRequirement().Authenticate("provider", "scope1", "scope2"),
			json:        `{"provider":["scope1","scope2"]}`,
		},
	}

	for _, test := range tests {

		b, err := json.Marshal(test.requirement)
		require.NoError(t, err)
		require.Equal(t, test.json, string(b), "incorrect requirements encoding")
	}
}