Blame


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