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