Blame


1 f5fde32e 2022-01-18 o package icinga
2 f5fde32e 2022-01-18 o
3 f5fde32e 2022-01-18 o import (
4 f5fde32e 2022-01-18 o "encoding/json"
5 f5fde32e 2022-01-18 o "os"
6 f5fde32e 2022-01-18 o "reflect"
7 f5fde32e 2022-01-18 o "testing"
8 f5fde32e 2022-01-18 o )
9 f5fde32e 2022-01-18 o
10 f5fde32e 2022-01-18 o func TestServiceUnmarshal(t *testing.T) {
11 f5fde32e 2022-01-18 o f, err := os.Open("testdata/services.json")
12 f5fde32e 2022-01-18 o if err != nil {
13 f5fde32e 2022-01-18 o t.Fatal(err)
14 f5fde32e 2022-01-18 o }
15 f5fde32e 2022-01-18 o defer f.Close()
16 f5fde32e 2022-01-18 o resp, err := parseResponse(f)
17 f5fde32e 2022-01-18 o if err != nil {
18 f5fde32e 2022-01-18 o t.Fatal(err)
19 f5fde32e 2022-01-18 o }
20 f5fde32e 2022-01-18 o want := Service{
21 f5fde32e 2022-01-18 o Name: "9p.io!http",
22 f5fde32e 2022-01-18 o Groups: []string{},
23 f5fde32e 2022-01-18 o State: ServiceOK,
24 f5fde32e 2022-01-18 o StateType: StateHard,
25 f5fde32e 2022-01-18 o CheckCommand: "http",
26 f5fde32e 2022-01-18 o DisplayName: "http",
27 f5fde32e 2022-01-18 o LastCheckResult: CheckResult{
28 f5fde32e 2022-01-18 o Output: "HTTP OK: HTTP/1.1 200 OK - 1714 bytes in 0.703 second response time ",
29 f5fde32e 2022-01-18 o },
30 f5fde32e 2022-01-18 o }
31 f5fde32e 2022-01-18 o var got Service
32 f5fde32e 2022-01-18 o for _, r := range resp.Results {
33 f5fde32e 2022-01-18 o if r.name() == "9p.io!http" {
34 f5fde32e 2022-01-18 o got = r.(Service)
35 f5fde32e 2022-01-18 o }
36 f5fde32e 2022-01-18 o }
37 f5fde32e 2022-01-18 o if !reflect.DeepEqual(want, got) {
38 f5fde32e 2022-01-18 o t.Fail()
39 f5fde32e 2022-01-18 o }
40 f5fde32e 2022-01-18 o t.Logf("want %+v, got %+v", want, got)
41 f5fde32e 2022-01-18 o }
42 f5fde32e 2022-01-18 o
43 f5fde32e 2022-01-18 o func TestServiceMarshal(t *testing.T) {
44 f5fde32e 2022-01-18 o want := `{"attrs":{"check_command":"http","display_name":"http"}}`
45 f5fde32e 2022-01-18 o
46 f5fde32e 2022-01-18 o b, err := json.Marshal(Service{
47 f5fde32e 2022-01-18 o Name: "9p.io!http",
48 f5fde32e 2022-01-18 o Groups: []string{},
49 f5fde32e 2022-01-18 o State: ServiceOK,
50 f5fde32e 2022-01-18 o StateType: StateHard,
51 f5fde32e 2022-01-18 o CheckCommand: "http",
52 f5fde32e 2022-01-18 o DisplayName: "http",
53 f5fde32e 2022-01-18 o LastCheckResult: CheckResult{
54 f5fde32e 2022-01-18 o Output: "HTTP OK: HTTP/1.1 200 OK - 1714 bytes in 0.703 second response time ",
55 f5fde32e 2022-01-18 o },
56 f5fde32e 2022-01-18 o })
57 f5fde32e 2022-01-18 o if err != nil {
58 f5fde32e 2022-01-18 o t.Error(err)
59 f5fde32e 2022-01-18 o }
60 f5fde32e 2022-01-18 o got := string(b)
61 f5fde32e 2022-01-18 o if want != got {
62 f5fde32e 2022-01-18 o t.Fail()
63 f5fde32e 2022-01-18 o }
64 f5fde32e 2022-01-18 o t.Log("want", want, "got", got)
65 f5fde32e 2022-01-18 o }