forked from TrueCloudLab/frostfs-node
[#493] node/config: Implement string caster
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
This commit is contained in:
parent
7e11bf9a55
commit
cbe3e0a271
4 changed files with 45 additions and 1 deletions
|
@ -28,3 +28,22 @@ func StringSlice(c *Config, name string) []string {
|
||||||
func StringSliceSafe(c *Config, name string) []string {
|
func StringSliceSafe(c *Config, name string) []string {
|
||||||
return cast.ToStringSlice(c.Value(name))
|
return cast.ToStringSlice(c.Value(name))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// String reads configuration value
|
||||||
|
// from c by name and casts it to string.
|
||||||
|
//
|
||||||
|
// Panics if value can not be casted.
|
||||||
|
func String(c *Config, name string) string {
|
||||||
|
x, err := cast.ToStringE(c.Value(name))
|
||||||
|
panicOnErr(err)
|
||||||
|
|
||||||
|
return x
|
||||||
|
}
|
||||||
|
|
||||||
|
// StringSafe reads configuration value
|
||||||
|
// from c by name and casts it to string.
|
||||||
|
//
|
||||||
|
// Returns "" if value can not be casted.
|
||||||
|
func StringSafe(c *Config, name string) string {
|
||||||
|
return cast.ToString(c.Value(name))
|
||||||
|
}
|
||||||
|
|
|
@ -28,3 +28,19 @@ func TestStringSlice(t *testing.T) {
|
||||||
require.Nil(t, val)
|
require.Nil(t, val)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestString(t *testing.T) {
|
||||||
|
forEachFileType("test/config", func(c *config.Config) {
|
||||||
|
c = c.Sub("string")
|
||||||
|
|
||||||
|
val := config.String(c, "correct")
|
||||||
|
require.Equal(t, "some string", val)
|
||||||
|
|
||||||
|
require.Panics(t, func() {
|
||||||
|
config.String(c, "incorrect")
|
||||||
|
})
|
||||||
|
|
||||||
|
val = config.StringSafe(c, "incorrect")
|
||||||
|
require.Empty(t, val)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
|
@ -10,5 +10,9 @@
|
||||||
"string2"
|
"string2"
|
||||||
],
|
],
|
||||||
"incorrect": null
|
"incorrect": null
|
||||||
|
},
|
||||||
|
"string": {
|
||||||
|
"correct": "some string",
|
||||||
|
"incorrect": []
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -10,4 +10,9 @@ string_slice:
|
||||||
- string1
|
- string1
|
||||||
- string2
|
- string2
|
||||||
|
|
||||||
incorrect:
|
incorrect:
|
||||||
|
|
||||||
|
string:
|
||||||
|
correct: some string
|
||||||
|
|
||||||
|
incorrect: []
|
||||||
|
|
Loading…
Reference in a new issue