github.com/johnnyeven/libtools@v0.0.0-20191126065708-61829c1adf46/courier/swagger/gen/enum_scanner_test.go (about) 1 package gen 2 3 import ( 4 "testing" 5 6 "github.com/stretchr/testify/assert" 7 8 "github.com/johnnyeven/libtools/codegen/loaderx" 9 ) 10 11 func TestEnumScanner_WithSkip(t *testing.T) { 12 tt := assert.New(t) 13 14 pkgImportPath, program := loaderx.NewTestProgram(` 15 package main 16 17 type State int 18 19 const ( 20 STATE_UNKNOWN State = iota 21 STATE__ONE // one 22 STATE__TWO // two 23 STATE__THREE // three 24 _ 25 STATE__FOUR State = iota + 100 // four 26 ) 27 `) 28 29 scanner := NewEnumScanner(program) 30 query := loaderx.NewQuery(program, pkgImportPath) 31 enums := scanner.Enum(query.TypeName("State")) 32 33 tt.Equal(Enum{ 34 { 35 Label: "four", 36 Value: "FOUR", 37 Val: int64(105), 38 }, 39 { 40 Value: "ONE", 41 Label: "one", 42 Val: int64(1), 43 }, 44 { 45 Value: "THREE", 46 Label: "three", 47 Val: int64(3), 48 }, 49 { 50 Value: "TWO", 51 Label: "two", 52 Val: int64(2), 53 }, 54 }, enums) 55 } 56 57 func TestEnumScanner_MultipleBlock(t *testing.T) { 58 tt := assert.New(t) 59 60 pkgImportPath, program := loaderx.NewTestProgram(` 61 package main 62 63 type State int 64 65 const ( 66 STATE_UNKNOWN State = iota 67 STATE__ONE // one 68 ) 69 70 const ( 71 STATE__FOUR State = iota + 100 // four 72 ) 73 `) 74 75 scanner := NewEnumScanner(program) 76 query := loaderx.NewQuery(program, pkgImportPath) 77 enums := scanner.Enum(query.TypeName("State")) 78 79 tt.Equal(Enum{ 80 { 81 Label: "four", 82 Value: "FOUR", 83 Val: int64(100), 84 }, 85 { 86 Label: "one", 87 Value: "ONE", 88 Val: int64(1), 89 }, 90 }, enums) 91 } 92 93 func TestEnumScanner_TestEnumValDirectly(t *testing.T) { 94 tt := assert.New(t) 95 96 pkgImportPath, program := loaderx.NewTestProgram(` 97 package main 98 99 type State string 100 101 const ( 102 One State = "ONE" // one 103 Four State = "FOUR" // four 104 ) 105 `) 106 107 scanner := NewEnumScanner(program) 108 query := loaderx.NewQuery(program, pkgImportPath) 109 enums := scanner.Enum(query.TypeName("State")) 110 111 tt.Equal(Enum{ 112 { 113 Label: "four", 114 Value: "FOUR", 115 Val: "FOUR", 116 }, 117 { 118 Label: "one", 119 Value: "ONE", 120 Val: "ONE", 121 }, 122 }, enums) 123 }