mirror of
https://github.com/micromdm/micromdm/
synced 2026-08-14 17:41:43 +08:00
50 lines
1.1 KiB
Go
50 lines
1.1 KiB
Go
package checkin_test
|
|
|
|
import (
|
|
"io/ioutil"
|
|
"reflect"
|
|
"testing"
|
|
|
|
"github.com/groob/plist"
|
|
"github.com/micromdm/mdm"
|
|
|
|
"github.com/micromdm/micromdm/checkin"
|
|
)
|
|
|
|
var marshalTests = []string{
|
|
"Authenticate",
|
|
"TokenUpdate",
|
|
"CheckOut",
|
|
}
|
|
|
|
func TestMarshalEvent(t *testing.T) {
|
|
for _, tt := range marshalTests {
|
|
name := tt
|
|
t.Run(name, func(t *testing.T) {
|
|
t.Parallel()
|
|
v := checkin.NewEvent(mustLoadCommand(t, name))
|
|
var other checkin.Event
|
|
if buf, err := checkin.MarshalEvent(v); err != nil {
|
|
t.Fatal(err)
|
|
} else if err := checkin.UnmarshalEvent(buf, &other); err != nil {
|
|
t.Fatal(err)
|
|
} else if !reflect.DeepEqual(v, &other) {
|
|
t.Fatalf("\nwant: %#v\n \nhave: %#v\n", v, &other)
|
|
}
|
|
})
|
|
}
|
|
|
|
}
|
|
|
|
func mustLoadCommand(t *testing.T, name string) mdm.CheckinCommand {
|
|
var payload mdm.CheckinCommand
|
|
data, err := ioutil.ReadFile("testdata/" + name + ".plist")
|
|
if err != nil {
|
|
t.Fatalf("failed to open test file %q.plist, err: %s", name, err)
|
|
}
|
|
if err := plist.Unmarshal(data, &payload); err != nil {
|
|
t.Fatalf("failed to unmarshal plist %q, err: %s", name, err)
|
|
}
|
|
return payload
|
|
}
|