-
Notifications
You must be signed in to change notification settings - Fork 0
/
query_test.go
62 lines (57 loc) · 1.67 KB
/
query_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
package puppetquery
import "testing"
func TestActiveNodes(t *testing.T) {
q := ActiveNodes()
want := `["=",["node","active"],true]`
got := q.ToJson()
if got != want {
t.Error("got: ", got, " want: ", want)
} else {
t.Log("got: ", got, " want: ", want)
}
}
func TestFactCompare(t *testing.T) {
q := FactCompare("kernel", "=", "Linux")
want := `["=",["fact","kernel"],"Linux"]`
got := q.ToJson()
if got != want {
t.Error("got: ", got, " want: ", want)
} else {
t.Log("got: ", got, " want: ", want)
}
}
var opTests = []struct {
in QueryString
want string
}{
{
in: And(FactCompare("kernel", "=", "Linux"), FactCompare("uptime_days", ">", 30)),
want: `["and",["=",["fact","kernel"],"Linux"],["\u003e",["fact","uptime_days"],30]]`,
},
{
in: And(ActiveNodes(), And(FactCompare("kernel", "=", "Linux"), FactCompare("uptime_days", ">", 30))),
want: `["and",["=",["fact","kernel"],"Linux"],["\u003e",["fact","uptime_days"],30],["=",["node","active"],true]]`,
},
{
in: Or(FactCompare("kernel", "=", "Linux"), FactCompare("uptime_days", ">", 30)),
want: `["or",["=",["fact","kernel"],"Linux"],["\u003e",["fact","uptime_days"],30]]`,
},
{
in: Not(FactCompare("kernel", "=", "Linux")),
want: `["not",["=",["fact","kernel"],"Linux"]]`,
},
{
in: Not(Not(And(FactCompare("kernel", "=", "Linux"), FactCompare("uptime_days", ">", 30)))),
want: `["and",["=",["fact","kernel"],"Linux"],["\u003e",["fact","uptime_days"],30]]`,
},
}
func TestOps(t *testing.T) {
for i, test := range opTests {
got := test.in.ToJson()
if got != test.want {
t.Error(i, ": got: ", got, " want: ", test.want)
} else {
t.Log(i, ": got: ", got, " want: ", test.want)
}
}
}