summaryrefslogtreecommitdiff
path: root/internal/packet/packet_test.go
diff options
context:
space:
mode:
authorKyren223 <ulmliad223@gmail.com>2024-10-15 21:59:08 +0300
committerKyren223 <ulmliad223@gmail.com>2024-10-15 21:59:08 +0300
commit260ad0e1bd0931956cf8c689e81fffc59d12e2aa (patch)
tree9032037c99b4f9cc6dfe07c69dc34a7a25c597cb /internal/packet/packet_test.go
parentc5dba4360acff23a89f301235401ddfe19ab99a8 (diff)
feat: communication using custom packet protocol
Diffstat (limited to 'internal/packet/packet_test.go')
-rw-r--r--internal/packet/packet_test.go50
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
+ }
+}