12 730f973b 2022-01-11 o func randomHostname() string {
13 730f973b 2022-01-11 o var letters = []rune("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789")
14 730f973b 2022-01-11 o b := make([]rune, 8)
15 730f973b 2022-01-11 o for i := range b {
16 730f973b 2022-01-11 o b[i] = letters[rand.Intn(len(letters))]
18 730f973b 2022-01-11 o return string(b) + ".example.org"
21 730f973b 2022-01-11 o func compareStringSlice(a, b []string) bool {
22 730f973b 2022-01-11 o if len(a) != len(b) {
25 730f973b 2022-01-11 o for i, v := range a {
33 730f973b 2022-01-11 o func TestFilter(t *testing.T) {
34 730f973b 2022-01-11 o tp := http.DefaultTransport.(*http.Transport)
35 730f973b 2022-01-11 o tp.TLSClientConfig = &tls.Config{InsecureSkipVerify: true}
36 730f973b 2022-01-11 o c := http.DefaultClient
37 730f973b 2022-01-11 o c.Transport = tp
38 730f973b 2022-01-11 o client, err := Dial("127.0.0.1:5665", "root", "8eec5ede1673b757", c)
39 730f973b 2022-01-11 o if err != nil {
40 730f973b 2022-01-11 o t.Skipf("no local test icinga? got: %v", err)
43 730f973b 2022-01-11 o var want, got []string
44 730f973b 2022-01-11 o for i := 0; i < 5; i++ {
45 730f973b 2022-01-11 o h := Host{Name: randomHostname(), CheckCommand: "hostalive"}
46 730f973b 2022-01-11 o want = append(want, h.Name)
47 730f973b 2022-01-11 o if err := client.CreateHost(h); err != nil {
48 730f973b 2022-01-11 o if !errors.Is(err, ErrExist) {
53 730f973b 2022-01-11 o t.Logf("created host %s", h.Name)
55 730f973b 2022-01-11 o hosts, err := client.FilterHosts("match(\"*example.org\", host.name)")
56 730f973b 2022-01-11 o if err != nil {
59 730f973b 2022-01-11 o for _, h := range hosts {
60 730f973b 2022-01-11 o got = append(got, h.Name)
62 730f973b 2022-01-11 o sort.Strings(want)
63 730f973b 2022-01-11 o sort.Strings(got)
64 730f973b 2022-01-11 o if !compareStringSlice(want, got) {
67 730f973b 2022-01-11 o t.Logf("want %+v got %+v", want, got)