gotelem/skylab/templates/golang_tests.go.tmpl

65 lines
1.1 KiB
Cheetah
Raw Normal View History

2023-05-19 21:57:05 +00:00
package skylab
import (
"testing"
2024-03-07 19:29:50 +00:00
"reflect"
2023-05-19 21:57:05 +00:00
"encoding/json"
)
{{ range .Packets }}
{{- $structName := camelCase .Name true}}
func TestMarshalUnmarshal{{$structName}}(t *testing.T) {
v := &{{$structName}}{}
bin, err := v.MarshalPacket()
if err != nil {
t.Fatal(err)
}
err = v.UnmarshalPacket(bin)
if err != nil {
t.Fatal(err)
}
}
func TestJSON{{$structName}}(t *testing.T) {
v := &{{$structName}}{}
2023-05-29 00:39:03 +00:00
rawData, err := json.Marshal(v)
2023-05-19 21:57:05 +00:00
if err != nil {
t.Fatal(err)
}
2024-02-28 07:07:28 +00:00
p, err := FromJson(v.String(), rawData)
2023-05-19 21:57:05 +00:00
if err != nil {
t.Fatal(err)
}
switch underlying := p.(type) {
case *{{$structName}}:
break
default:
t.Fatalf("didn't match type: %T, %v", underlying, underlying)
}
}
2024-03-07 19:29:50 +00:00
func TestCanFrame{{$structName}}(t *testing.T) {
v := &{{$structName}}{}
frame, err := ToCanFrame(v)
if err != nil {
t.Fatalf("expected no error, got %v", err)
}
retpkt, err := FromCanFrame(frame)
if err != nil {
t.Fatalf("expected no error, got %v", err)
}
if !reflect.DeepEqual(v, retpkt) {
t.Fatalf("decoded packet did not match sent %v got %v", v, retpkt)
}
}
2023-05-19 21:57:05 +00:00
{{- end }}