-
Notifications
You must be signed in to change notification settings - Fork 0
/
encoding_test.go
132 lines (100 loc) · 3.39 KB
/
encoding_test.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
package engineio_test
import (
"testing"
engineio "github.com/lewisgibson/go-engine.io"
"github.com/stretchr/testify/require"
)
func TestEncodePacket(t *testing.T) {
t.Parallel()
// Arrange: create a packet
packet := engineio.Packet{
Type: engineio.PacketMessage,
Data: []byte("Hello, World!"),
}
// Act: encode the packet
encodedPacket := engineio.EncodePacket(packet)
// Assert: the encoded packet is the expected packet
expectedPacket := []byte{0x34, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x2c, 0x20, 0x57, 0x6f, 0x72, 0x6c, 0x64, 0x21}
require.Equal(t, expectedPacket, encodedPacket)
}
func TestEncodePacket_Binary(t *testing.T) {
t.Parallel()
// Arrange: create a packet
packet := engineio.Packet{
Type: engineio.PacketMessage,
Data: []byte("Hello, World!\n"),
}
// Act: encode the packet
encodedPacket := engineio.EncodePacket(packet)
// Assert: the encoded packet is the expected packet
expectedPacket := []byte{0x62, 0x53, 0x47, 0x56, 0x73, 0x62, 0x47, 0x38, 0x73, 0x49, 0x46, 0x64, 0x76, 0x63, 0x6d, 0x78, 0x6b, 0x49, 0x51, 0x6f, 0x3d}
require.Equal(t, expectedPacket, encodedPacket)
}
func TestDecodePacket(t *testing.T) {
t.Parallel()
// Arrange: create a packet
input := []byte{0x34, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x2c, 0x20, 0x57, 0x6f, 0x72, 0x6c, 0x64, 0x21}
// Act: decode the packet
decodedPacket, err := engineio.DecodePacket(input)
require.NoError(t, err)
// Assert: the decoded packet is the same
expectedPacket := engineio.Packet{
Type: engineio.PacketMessage,
Data: []byte("Hello, World!"),
}
require.Equal(t, expectedPacket, decodedPacket)
}
func TestDecodePacket_EmptyPacket(t *testing.T) {
t.Parallel()
// Arrange: create an empty packet
input := []byte{}
// Act: decode the packet
packet, err := engineio.DecodePacket(input)
// Assert: the decode should return an error
require.ErrorIsf(t, err, engineio.ErrEmptyPacket, "decode should return an error")
require.Zero(t, packet)
}
func TestDecodePacket_Binary(t *testing.T) {
t.Parallel()
// Arrange: create a packet
input := []byte{0x62, 0x53, 0x47, 0x56, 0x73, 0x62, 0x47, 0x38, 0x73, 0x49, 0x46, 0x64, 0x76, 0x63, 0x6d, 0x78, 0x6b, 0x49, 0x51, 0x6f, 0x3d}
// Act: decode the packet
decodedPacket, err := engineio.DecodePacket(input)
require.NoError(t, err)
// Assert: the decoded packet is the same
expectedPacket := engineio.Packet{
Type: engineio.PacketMessage,
Data: []byte("Hello, World!\n"),
}
require.Equal(t, expectedPacket, decodedPacket)
}
func TestEncodeDecode(t *testing.T) {
t.Parallel()
// Arrange: create a packet
packet := engineio.Packet{
Type: engineio.PacketMessage,
Data: []byte("Hello, World!"),
}
// Act: encode the packet
encodedPacket := engineio.EncodePacket(packet)
// Act: decode the packet
decodedPacket, err := engineio.DecodePacket(encodedPacket)
require.NoError(t, err)
// Assert: the decoded packet is the same as the original packet
require.Equal(t, packet, decodedPacket)
}
func TestEncodeDecode_Binary(t *testing.T) {
t.Parallel()
// Arrange: create a packet
packet := engineio.Packet{
Type: engineio.PacketMessage,
Data: []byte("Hello, World!\n"),
}
// Act: encode the packet
encodedPacket := engineio.EncodePacket(packet)
// Act: decode the packet
decodedPacket, err := engineio.DecodePacket(encodedPacket)
require.NoError(t, err)
// Assert: the decoded packet is the same as the original packet
require.Equal(t, packet, decodedPacket)
}