github.com/verrazzano/verrazzano@v1.7.0/tools/vz/cmd/helpers/log_format_test.go (about) 1 // Copyright (c) 2022, Oracle and/or its affiliates. 2 // Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl. 3 4 package helpers 5 6 import ( 7 "github.com/spf13/pflag" 8 "testing" 9 ) 10 11 func TestLogFormat_AsFlag(t *testing.T) { 12 tests := []struct { 13 name string 14 args []string 15 want LogFormat 16 wantErr bool 17 }{ 18 {name: "simple", args: []string{"--v=simple"}, want: LogFormatSimple, wantErr: false}, 19 {name: "json", args: []string{"--v=json"}, want: LogFormatJSON, wantErr: false}, 20 {name: "invalid", args: []string{"--v=invalid"}, want: "", wantErr: true}, 21 } 22 for _, tt := range tests { 23 t.Run(tt.name, func(t *testing.T) { 24 var flags pflag.FlagSet 25 flags.Init("test", pflag.ContinueOnError) 26 var v LogFormat 27 flags.VarP(&v, "v", "v", "usage") 28 if err := flags.Parse(tt.args); (err != nil) != tt.wantErr { 29 t.Errorf("flags.Parse(LogFormat) error = %v, wantErr %v", err, tt.wantErr) 30 } 31 if v.String() != tt.want.String() { 32 t.Errorf("expected value %q got %q", tt.want.String(), v.String()) 33 } 34 if v.Type() != "format" { 35 t.Errorf("expected type to be %q got %q", "format", v.Type()) 36 } 37 }) 38 } 39 }