github.com/youyuanwu/go-swagger@v0.19.0/cmd/swagger/commands/generate/shared_test.go (about) 1 package generate 2 3 import ( 4 "io/ioutil" 5 "log" 6 "os" 7 "testing" 8 9 "github.com/go-openapi/analysis" 10 "github.com/stretchr/testify/assert" 11 ) 12 13 func resetDefaultOpts() *analysis.FlattenOpts { 14 return &analysis.FlattenOpts{ 15 Verbose: true, 16 Minimal: true, 17 Expand: false, 18 RemoveUnused: false, 19 } 20 } 21 22 func Test_Shared_SetFlattenOptions(t *testing.T) { 23 log.SetOutput(ioutil.Discard) 24 defer log.SetOutput(os.Stdout) 25 26 // testing multiple options settings for flatten: 27 // - verbose | noverbose 28 // - remove-unused 29 // - expand 30 // - minimal 31 32 var fixt *FlattenCmdOptions 33 34 res := fixt.SetFlattenOptions(nil) 35 assert.NotNil(t, res) 36 37 defaultOpts := resetDefaultOpts() 38 39 res = fixt.SetFlattenOptions(defaultOpts) 40 if !assert.NotNil(t, res) { 41 t.FailNow() 42 return 43 } 44 assert.Equal(t, *defaultOpts, *res) 45 46 fixt = &FlattenCmdOptions{ 47 WithExpand: false, 48 WithFlatten: []string{"noverbose"}, 49 } 50 res = fixt.SetFlattenOptions(defaultOpts) 51 assert.Equal(t, analysis.FlattenOpts{ 52 Verbose: false, 53 Minimal: true, 54 Expand: false, 55 RemoveUnused: false, 56 }, *res) 57 58 fixt = &FlattenCmdOptions{ 59 WithExpand: false, 60 WithFlatten: []string{"noverbose", "full"}, 61 } 62 res = fixt.SetFlattenOptions(defaultOpts) 63 assert.Equal(t, analysis.FlattenOpts{ 64 Verbose: false, 65 Minimal: false, 66 Expand: false, 67 RemoveUnused: false, 68 }, *res) 69 70 fixt = &FlattenCmdOptions{ 71 WithExpand: false, 72 WithFlatten: []string{"verbose", "noverbose", "full"}, 73 } 74 res = fixt.SetFlattenOptions(defaultOpts) 75 assert.Equal(t, analysis.FlattenOpts{ 76 Verbose: true, 77 Minimal: false, 78 Expand: false, 79 RemoveUnused: false, 80 }, *res) 81 82 fixt = &FlattenCmdOptions{ 83 WithExpand: false, 84 WithFlatten: []string{"verbose", "noverbose", "full", "expand", "remove-unused"}, 85 } 86 res = fixt.SetFlattenOptions(defaultOpts) 87 assert.Equal(t, analysis.FlattenOpts{ 88 Verbose: true, 89 Minimal: false, 90 Expand: true, 91 RemoveUnused: true, 92 }, *res) 93 94 fixt = &FlattenCmdOptions{ 95 WithExpand: false, 96 WithFlatten: []string{"minimal", "verbose", "noverbose", "full"}, 97 } 98 res = fixt.SetFlattenOptions(defaultOpts) 99 assert.Equal(t, analysis.FlattenOpts{ 100 Verbose: true, 101 Minimal: true, 102 Expand: false, 103 RemoveUnused: false, 104 }, *res) 105 106 fixt = &FlattenCmdOptions{ 107 WithExpand: true, 108 WithFlatten: []string{"minimal", "noverbose", "full"}, 109 } 110 res = fixt.SetFlattenOptions(defaultOpts) 111 assert.Equal(t, analysis.FlattenOpts{ 112 Verbose: false, 113 Minimal: true, 114 Expand: true, 115 RemoveUnused: false, 116 }, *res) 117 } 118 119 func Test_Shared_ReadConfig(t *testing.T) { 120 }