1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- 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"))
- }
|