42 lines
807 B
Go
42 lines
807 B
Go
package gosimpleconf
|
|
|
|
import (
|
|
"flag"
|
|
"strings"
|
|
"testing"
|
|
)
|
|
|
|
func TestFlagOverrides(t *testing.T) {
|
|
var err error
|
|
configFileStr := `
|
|
foo=bar
|
|
asdf = 1234
|
|
foo.wat =stuff
|
|
immaempty=
|
|
`
|
|
configFile := strings.NewReader(configFileStr)
|
|
|
|
expectedMap := make(ConfigMap)
|
|
expectedMap["foo"] = "bar"
|
|
expectedMap["asdf"] = "1234"
|
|
// expect to override the 'foo.wat' value with a cli flag
|
|
expectedMap["foo.wat"] = "iwasoverridden"
|
|
expectedMap["immaempty"] = ""
|
|
|
|
configMap, err := parseFile(configFile)
|
|
if err != nil {
|
|
t.Errorf("failed while parsing the file")
|
|
}
|
|
|
|
flagMap := SetupFlagOverrides(configMap)
|
|
|
|
err = flag.Set("foo.wat", "iwasoverridden")
|
|
if err != nil {
|
|
t.Errorf("failed to set cli flag override")
|
|
}
|
|
|
|
configMap = ParseFlags(configMap, flagMap)
|
|
|
|
validateMap(t, configMap, expectedMap)
|
|
}
|