Blame


1 dd0af5f7 2022-01-18 o package icinga
2 dd0af5f7 2022-01-18 o
3 dd0af5f7 2022-01-18 o import (
4 dd0af5f7 2022-01-18 o "encoding/json"
5 dd0af5f7 2022-01-18 o "reflect"
6 dd0af5f7 2022-01-18 o "testing"
7 dd0af5f7 2022-01-18 o )
8 dd0af5f7 2022-01-18 o
9 dd0af5f7 2022-01-18 o func TestHostMarshal(t *testing.T) {
10 dd0af5f7 2022-01-18 o s := `{"attrs":{"address":"192.0.2.1","address6":"2001:db8::","groups":["test"],"check_command":"dummy","display_name":"Example host"}}`
11 dd0af5f7 2022-01-18 o want := make(map[string]interface{})
12 dd0af5f7 2022-01-18 o if err := json.Unmarshal([]byte(s), &want); err != nil {
13 dd0af5f7 2022-01-18 o t.Fatal(err)
14 dd0af5f7 2022-01-18 o }
15 dd0af5f7 2022-01-18 o
16 dd0af5f7 2022-01-18 o p, err := json.Marshal(Host{
17 dd0af5f7 2022-01-18 o Name: "example.com",
18 dd0af5f7 2022-01-18 o Address: "192.0.2.1",
19 dd0af5f7 2022-01-18 o Address6: "2001:db8::",
20 dd0af5f7 2022-01-18 o Groups: []string{"test"},
21 dd0af5f7 2022-01-18 o State: HostDown,
22 dd0af5f7 2022-01-18 o StateType: StateSoft,
23 dd0af5f7 2022-01-18 o CheckCommand: "dummy",
24 dd0af5f7 2022-01-18 o DisplayName: "Example host",
25 dd0af5f7 2022-01-18 o })
26 dd0af5f7 2022-01-18 o if err != nil {
27 dd0af5f7 2022-01-18 o t.Fatal(err)
28 dd0af5f7 2022-01-18 o }
29 dd0af5f7 2022-01-18 o got := make(map[string]interface{})
30 dd0af5f7 2022-01-18 o if err := json.Unmarshal(p, &got); err != nil {
31 dd0af5f7 2022-01-18 o t.Fatal(err)
32 dd0af5f7 2022-01-18 o }
33 dd0af5f7 2022-01-18 o
34 dd0af5f7 2022-01-18 o if !reflect.DeepEqual(want, got) {
35 dd0af5f7 2022-01-18 o t.Fail()
36 dd0af5f7 2022-01-18 o }
37 dd0af5f7 2022-01-18 o t.Log("want", want, "got", got)
38 dd0af5f7 2022-01-18 o }