forked from TrueCloudLab/frostfs-node
[#493] node/config: Implement integer casters
Implement `Int` / `Uint` functions which casts value to `int64` / `uint64`. Implement safe functions `IntSafe` / `UintSafe`. Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
This commit is contained in:
parent
efcd12c71e
commit
2bbd4d0ee3
4 changed files with 107 additions and 1 deletions
|
@ -62,3 +62,37 @@ func TestDuration(t *testing.T) {
|
|||
require.Equal(t, time.Duration(0), val)
|
||||
})
|
||||
}
|
||||
|
||||
func TestNumbers(t *testing.T) {
|
||||
configtest.ForEachFileType("test/config", func(c *config.Config) {
|
||||
c = c.Sub("number")
|
||||
|
||||
const (
|
||||
intPos = "int_pos"
|
||||
intNeg = "int_neg"
|
||||
|
||||
fractPos = "fract_pos"
|
||||
fractNeg = "fract_neg"
|
||||
|
||||
incorrect = "incorrect"
|
||||
)
|
||||
|
||||
require.EqualValues(t, 1, config.Int(c, intPos))
|
||||
require.EqualValues(t, 1, config.Uint(c, intPos))
|
||||
|
||||
require.EqualValues(t, -1, config.Int(c, intNeg))
|
||||
require.Panics(t, func() { config.Uint(c, intNeg) })
|
||||
|
||||
require.EqualValues(t, 2, config.Int(c, fractPos))
|
||||
require.EqualValues(t, 2, config.Uint(c, fractPos))
|
||||
|
||||
require.EqualValues(t, -2, config.Int(c, fractNeg))
|
||||
require.Panics(t, func() { config.Uint(c, fractNeg) })
|
||||
|
||||
require.Panics(t, func() { config.Int(c, incorrect) })
|
||||
require.Panics(t, func() { config.Uint(c, incorrect) })
|
||||
|
||||
require.Zero(t, config.IntSafe(c, incorrect))
|
||||
require.Zero(t, config.UintSafe(c, incorrect))
|
||||
})
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue