...
1 package opts
2
3 import (
4 "testing"
5 "time"
6
7 "gotest.tools/v3/assert"
8 is "gotest.tools/v3/assert/cmp"
9 )
10
11 func TestDurationOptString(t *testing.T) {
12 dur := time.Duration(300 * 10e8)
13 duration := DurationOpt{value: &dur}
14 assert.Check(t, is.Equal("5m0s", duration.String()))
15 }
16
17 func TestDurationOptSetAndValue(t *testing.T) {
18 var duration DurationOpt
19 assert.NilError(t, duration.Set("300s"))
20 assert.Check(t, is.Equal(time.Duration(300*10e8), *duration.Value()))
21 assert.NilError(t, duration.Set("-300s"))
22 assert.Check(t, is.Equal(time.Duration(-300*10e8), *duration.Value()))
23 }
24
25 func TestPositiveDurationOptSetAndValue(t *testing.T) {
26 var duration PositiveDurationOpt
27 assert.NilError(t, duration.Set("300s"))
28 assert.Check(t, is.Equal(time.Duration(300*10e8), *duration.Value()))
29 assert.Error(t, duration.Set("-300s"), "duration cannot be negative")
30 }
31
View as plain text