diff options
Diffstat (limited to 'internal/packet/packet_test.go')
| -rw-r--r-- | internal/packet/packet_test.go | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/internal/packet/packet_test.go b/internal/packet/packet_test.go new file mode 100644 index 0000000..20370af --- /dev/null +++ b/internal/packet/packet_test.go @@ -0,0 +1,50 @@ +package packet + +import ( + "testing" + + "github.com/vmihailenco/msgpack/v5" +) + +func TestMsgPackEncoding(t *testing.T) { + request := EkoMessage{Message: "test"} + data, err := msgpack.Marshal(&request) + if err != nil { + t.Errorf("encoding error: %v", err) + return + } + var response EkoMessage + err = msgpack.Unmarshal(data, &response) + if err != nil { + t.Errorf("decoding error: %v", err) + return + } + if request.Message != response.Message { + t.Errorf("%v != %v", request.Message, response.Message) + return + } +} + +func TestPacketMsgPackEncoding(t *testing.T) { + request := EkoMessage{Message: "test"} + encoder1, err := NewMsgPackEncoder(&request) + encoder2, _ := NewMsgPackEncoder(&request) + if err != nil { + t.Errorf("encoding error: %v", err) + return + } + encodedBytes := make([]byte, PACKET_MAX_SIZE) + n, _ := encoder2.Read(encodedBytes[HEADER_SIZE:]) + + packet := NewPacket(encoder1) + var response EkoMessage + err = packet.DecodePayload(&response) + if err != nil { + t.Errorf("decoding error: %#v: packet: %v encoder: %v", err, packet.Payload(), encodedBytes[HEADER_SIZE:HEADER_SIZE+n]) + return + } + if request.Message != response.Message { + t.Errorf("%v != %v", request.Message, response.Message) + return + } +} |
