package key import ( "fmt" "testing" "github.com/stretchr/testify/assert" ) func Test_checkSingleFlag(t *testing.T) { type args struct { masterKeyFile string masterKeyFromArg string masterKeyFromEnv bool } tests := []struct { name string args args wantErr assert.ErrorAssertionFunc }{ { "no values, error", args{ masterKeyFile: "", masterKeyFromArg: "", masterKeyFromEnv: false, }, assert.Error, }, { "multiple values, error", args{ masterKeyFile: "file", masterKeyFromArg: "masterkey", masterKeyFromEnv: true, }, assert.Error, }, { "only file, ok", args{ masterKeyFile: "file", masterKeyFromArg: "", masterKeyFromEnv: false, }, assert.NoError, }, { "only argument, ok", args{ masterKeyFile: "", masterKeyFromArg: "masterkey", masterKeyFromEnv: false, }, assert.NoError, }, { "only env, ok", args{ masterKeyFile: "", masterKeyFromArg: "", masterKeyFromEnv: true, }, assert.NoError, }, } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { tt.wantErr(t, checkSingleFlag(tt.args.masterKeyFile, tt.args.masterKeyFromArg, tt.args.masterKeyFromEnv), fmt.Sprintf("checkSingleFlag(%v, %v)", tt.args.masterKeyFile, tt.args.masterKeyFromArg)) }) } }