forked from swaggo/swag
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathenums_test.go
More file actions
63 lines (53 loc) · 2.98 KB
/
enums_test.go
File metadata and controls
63 lines (53 loc) · 2.98 KB
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
package swag
import (
"encoding/json"
"math/bits"
"os"
"path/filepath"
"testing"
"github.com/stretchr/testify/assert"
)
func TestParseGlobalEnums(t *testing.T) {
searchDir := "testdata/enums"
expected, err := os.ReadFile(filepath.Join(searchDir, "expected.json"))
assert.NoError(t, err)
p := New()
err = p.ParseAPI(searchDir, mainAPIFile, defaultParseDepth)
assert.NoError(t, err)
b, err := json.MarshalIndent(p.swagger, "", " ")
assert.NoError(t, err)
assert.Equal(t, string(expected), string(b))
constsPath := "github.com/swaggo/swag/testdata/enums/consts"
assert.Equal(t, bits.UintSize, p.packages.packages[constsPath].ConstTable["uintSize"].Value)
assert.Equal(t, int32(62), p.packages.packages[constsPath].ConstTable["maxBase"].Value)
assert.Equal(t, 8, p.packages.packages[constsPath].ConstTable["shlByLen"].Value)
assert.Equal(t, 255, p.packages.packages[constsPath].ConstTable["hexnum"].Value)
assert.Equal(t, 15, p.packages.packages[constsPath].ConstTable["octnum"].Value)
assert.Equal(t, `aa\nbb\u8888cc`, p.packages.packages[constsPath].ConstTable["nonescapestr"].Value)
assert.Equal(t, "aa\nbb\u8888cc", p.packages.packages[constsPath].ConstTable["escapestr"].Value)
assert.Equal(t, 1_000_000, p.packages.packages[constsPath].ConstTable["underscored"].Value)
assert.Equal(t, 0b10001000, p.packages.packages[constsPath].ConstTable["binaryInteger"].Value)
assert.Equal(t, 0o755, p.packages.packages[constsPath].ConstTable["octInteger"].Value)
typesPath := "github.com/swaggo/swag/testdata/enums/types"
difficultyEnums := p.packages.packages[typesPath].TypeDefinitions["Difficulty"].Enums
assert.Equal(t, "Easy", difficultyEnums[0].key)
assert.Equal(t, "", difficultyEnums[0].Comment)
assert.Equal(t, "Medium", difficultyEnums[1].key)
assert.Equal(t, "This one also has a comment", difficultyEnums[1].Comment)
assert.Equal(t, "DifficultyHard", difficultyEnums[2].key)
assert.Equal(t, "This means really hard", difficultyEnums[2].Comment)
genericDifficultyEnums := p.packages.packages[typesPath].TypeDefinitions["GenericDifficulty"].Enums
assert.Equal(t, "GenericEasy", genericDifficultyEnums[0].key)
assert.Equal(t, "", genericDifficultyEnums[0].Comment)
assert.Equal(t, "GenericMedium", genericDifficultyEnums[1].key)
assert.Equal(t, "This one also has a comment", genericDifficultyEnums[1].Comment)
assert.Equal(t, "GenericDifficultyHard", genericDifficultyEnums[2].key)
assert.Equal(t, "This means really hard", genericDifficultyEnums[2].Comment)
securityLevelEnums := p.packages.packages[typesPath].TypeDefinitions["SecurityClearance"].Enums
assert.Equal(t, "Public", securityLevelEnums[0].key)
assert.Equal(t, "", securityLevelEnums[0].Comment)
assert.Equal(t, "SecurityClearanceSensitive", securityLevelEnums[1].key)
assert.Equal(t, "Name override and comment rules apply here just as above", securityLevelEnums[1].Comment)
assert.Equal(t, "SuperSecret", securityLevelEnums[2].key)
assert.Equal(t, "This one has a name override and a comment", securityLevelEnums[2].Comment)
}