-
Notifications
You must be signed in to change notification settings - Fork 0
/
example_test.go
100 lines (86 loc) · 1.63 KB
/
example_test.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
package arg_test
import (
"fmt"
"math"
"strings"
"github.com/Bofry/arg"
)
func Example() {
var (
host string = "127.0.0.1"
status string = "connecting"
requests int64 = 99
)
err := arg.Assert(
arg.Strings.Assert(host, "host",
arg.Strings.NonEmpty,
),
arg.Strings.Assert(status, "status",
arg.Strings.NonEmpty,
arg.Strings.In("connecting", "closed", "aborted"),
),
arg.Ints.Assert(requests, "requrests",
arg.Ints.NonNegativeInteger,
),
)
fmt.Println(err)
// Output: <nil>
}
func ExampleFloatAssertion_Must() {
var v float64 = 4.9001
err := arg.Floats.Assert(v, "v",
arg.Floats.Must(
func(v float64) bool {
return math.Round(v) == 5
}),
)
fmt.Println(err)
// Output: <nil>
}
func ExampleIntAssertion_Must() {
var v int64 = 6
err := arg.Ints.Assert(v, "v",
arg.Ints.Must(
func(v int64) bool {
return (v & 0x01) == 0
}),
)
fmt.Println(err)
// Output: <nil>
}
func ExampleNumberAssertion_Must() {
var v arg.Number = "6"
err := arg.Numbers.Assert(v, "v",
arg.Numbers.Must(
func(v arg.Number) bool {
argv, err := v.Int64()
if err != nil {
return false
}
return (argv & 0x01) == 0
}),
)
fmt.Println(err)
// Output: <nil>
}
func ExampleStringAssertion_Must() {
var v string = "ENV_FOO"
err := arg.Strings.Assert(v, "v",
arg.Strings.Must(
func(v string) bool {
return strings.HasPrefix(v, "ENV_")
}),
)
fmt.Println(err)
// Output: <nil>
}
func ExampleStringAssertion_MatchAny() {
var v string = "[email protected]"
err := arg.Strings.Assert(v, "v",
arg.Strings.MatchAny(
arg.EmailPattern,
),
)
fmt.Println(err)
// Output: <nil>
}