Blob


1 package icinga
3 import (
4 "encoding/json"
5 "os"
6 "reflect"
7 "testing"
8 )
10 func TestUser(t *testing.T) {
11 want := User{Name: "test", Email: "test@example.com", Groups: []string{}}
12 f, err := os.Open("testdata/users.json")
13 if err != nil {
14 t.Fatal(err)
15 }
16 defer f.Close()
17 resp, err := parseResponse(f)
18 if err != nil {
19 t.Fatal(err)
20 }
21 obj, err := objectFromLookup(resp)
22 if err != nil {
23 t.Fatal(err)
24 }
25 got, ok := obj.(User)
26 if !ok {
27 t.Fatalf("want %T, got %T", want, got)
28 }
29 if !reflect.DeepEqual(want, got) {
30 t.Errorf("want: %+v, got %+v", want, got)
31 }
32 }
34 func TestUserMarshal(t *testing.T) {
35 user := &User{Name: "test", Email: "test@example.com", Groups: []string{}}
36 want := `{"attrs":{"email":"test@example.com"}}`
37 got, err := json.Marshal(user)
38 if err != nil {
39 t.Fatal(err)
40 }
41 if string(got) != want {
42 t.Fail()
43 }
44 t.Logf("want %s, got %s", want, got)
45 }