diff --git a/group/group_test.go b/group/group_test.go index d2346ab..fddd982 100644 --- a/group/group_test.go +++ b/group/group_test.go @@ -1,6 +1,8 @@ package group import ( + "encoding/json" + "reflect" "testing" "time" ) @@ -20,3 +22,37 @@ func TestJSTime(t *testing.T) { t.Errorf("Delta %v, %v, %v", delta, tm, tm2) } } + +func TestDescriptionJSON(t *testing.T) { + d := ` +{ + "op":[{"username": "jch","password": "topsecret"}], + "max-history-age": 10, + "allow-subgroups": true, + "presenter":[ + {"user": "john", "password": "secret"}, + {} + ] +}` + + var dd description + err := json.Unmarshal([]byte(d), &dd) + if err != nil { + t.Fatalf("unmarshal: %v", err) + } + + ddd, err := json.Marshal(dd) + if err != nil { + t.Fatalf("marshal: %v", err) + } + + var dddd description + err = json.Unmarshal([]byte(ddd), &dddd) + if err != nil { + t.Fatalf("unmarshal: %v", err) + } + + if !reflect.DeepEqual(dd, dddd) { + t.Errorf("Got %v, expected %v", dddd, dd) + } +}