summaryrefslogtreecommitdiffstats
path: root/vendor/github.com/mattermost/viper/flags_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/mattermost/viper/flags_test.go')
-rw-r--r--vendor/github.com/mattermost/viper/flags_test.go65
1 files changed, 65 insertions, 0 deletions
diff --git a/vendor/github.com/mattermost/viper/flags_test.go b/vendor/github.com/mattermost/viper/flags_test.go
new file mode 100644
index 000000000..0b976b605
--- /dev/null
+++ b/vendor/github.com/mattermost/viper/flags_test.go
@@ -0,0 +1,65 @@
+package viper
+
+import (
+ "testing"
+
+ "github.com/spf13/pflag"
+ "github.com/stretchr/testify/assert"
+)
+
+func TestBindFlagValueSet(t *testing.T) {
+ flagSet := pflag.NewFlagSet("test", pflag.ContinueOnError)
+
+ var testValues = map[string]*string{
+ "host": nil,
+ "port": nil,
+ "endpoint": nil,
+ }
+
+ var mutatedTestValues = map[string]string{
+ "host": "localhost",
+ "port": "6060",
+ "endpoint": "/public",
+ }
+
+ for name := range testValues {
+ testValues[name] = flagSet.String(name, "", "test")
+ }
+
+ flagValueSet := pflagValueSet{flagSet}
+
+ err := BindFlagValues(flagValueSet)
+ if err != nil {
+ t.Fatalf("error binding flag set, %v", err)
+ }
+
+ flagSet.VisitAll(func(flag *pflag.Flag) {
+ flag.Value.Set(mutatedTestValues[flag.Name])
+ flag.Changed = true
+ })
+
+ for name, expected := range mutatedTestValues {
+ assert.Equal(t, Get(name), expected)
+ }
+}
+
+func TestBindFlagValue(t *testing.T) {
+ var testString = "testing"
+ var testValue = newStringValue(testString, &testString)
+
+ flag := &pflag.Flag{
+ Name: "testflag",
+ Value: testValue,
+ Changed: false,
+ }
+
+ flagValue := pflagValue{flag}
+ BindFlagValue("testvalue", flagValue)
+
+ assert.Equal(t, testString, Get("testvalue"))
+
+ flag.Value.Set("testing_mutate")
+ flag.Changed = true //hack for pflag usage
+
+ assert.Equal(t, "testing_mutate", Get("testvalue"))
+}