123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150 |
- package protocol
- import (
- "reflect"
- "sparrow/pkg/tlv"
- "testing"
- "time"
- )
- func TestCommand(t *testing.T) {
- param := []interface{}{uint32(1), float32(3.2), []byte{'1', '2'}}
- params, err := tlv.MakeTLVs(param)
- if err != nil {
- t.Fatal(err)
- }
- payloadHead := CommandEventHead{
- Flag: 0,
- Timestamp: uint64(time.Now().Unix()) * 1000,
- SubDeviceid: uint16(2),
- No: uint16(12),
- Priority: uint16(1),
- ParamsCount: uint16(len(param)),
- }
- payload := &Command{
- Head: payloadHead,
- Params: params,
- }
- buf, err := payload.Marshal()
- if err != nil {
- if err != nil {
- t.Error(err)
- }
- }
- payload2 := &Command{}
- err = payload2.UnMarshal(buf)
- if err != nil {
- if err != nil {
- t.Error(err)
- }
- }
- if !reflect.DeepEqual(payload, payload2) {
- t.Errorf("test command payload failed, want %v, got %v", payload, payload2)
- }
- }
- func TestEvent(t *testing.T) {
- param := []interface{}{uint32(1), float32(3.2), []byte{'1', '2'}}
- params, err := tlv.MakeTLVs(param)
- if err != nil {
- t.Fatal(err)
- }
- payloadHead := CommandEventHead{
- Flag: 0,
- Timestamp: uint64(time.Now().Unix()) * 1000,
- SubDeviceid: uint16(2),
- No: uint16(12),
- Priority: uint16(1),
- ParamsCount: uint16(len(param)),
- }
- payload := &Event{
- Head: payloadHead,
- Params: params,
- }
- buf, err := payload.Marshal()
- if err != nil {
- if err != nil {
- t.Error(err)
- }
- }
- payload2 := &Event{}
- err = payload2.UnMarshal(buf)
- if err != nil {
- if err != nil {
- t.Error(err)
- }
- }
- if !reflect.DeepEqual(payload, payload2) {
- t.Errorf("test event payload failed, want %v, got %v", payload, payload2)
- }
- }
- func TestData(t *testing.T) {
- payloadHead := DataHead{
- Flag: 0,
- Timestamp: uint64(time.Now().Unix() * 1000),
- }
- param1 := []interface{}{uint32(3), float32(1.2), int64(10)}
- params1, err := tlv.MakeTLVs(param1)
- if err != nil {
- t.Fatal(err)
- }
- sub1 := SubData{
- Head: SubDataHead{
- SubDeviceid: uint16(1),
- PropertyNum: uint16(1),
- ParamsCount: uint16(len(params1)),
- },
- Params: params1,
- }
- param2 := []interface{}{uint32(4), int64(11)}
- params2, err := tlv.MakeTLVs(param2)
- if err != nil {
- t.Fatal(err)
- }
- sub2 := SubData{
- Head: SubDataHead{
- SubDeviceid: uint16(1),
- PropertyNum: uint16(2),
- ParamsCount: uint16(len(params2)),
- },
- Params: params2,
- }
- payload := &Data{
- Head: payloadHead,
- SubData: []SubData{},
- }
- payload.SubData = append(payload.SubData, sub1)
- payload.SubData = append(payload.SubData, sub2)
- buf, err := payload.Marshal()
- if err != nil {
- if err != nil {
- t.Error(err)
- }
- }
- payload2 := &Data{}
- err = payload2.UnMarshal(buf)
- if err != nil {
- if err != nil {
- t.Error(err)
- }
- }
- if !reflect.DeepEqual(payload, payload2) {
- t.Errorf("test data payload failed, want %v, got %v", payload, payload2)
- }
- }
|