-
Notifications
You must be signed in to change notification settings - Fork 128
/
data_frame_test.go
39 lines (34 loc) 路 1.17 KB
/
data_frame_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
package frame
import (
"testing"
"github.com/stretchr/testify/assert"
)
func TestDataFrameEncode(t *testing.T) {
var userDataTag byte = 0x15
d := NewDataFrame()
d.SetCarriage(userDataTag, []byte("yomo"))
tidbuf := []byte(d.TransactionID())
result := []byte{
0x80 | byte(TagOfDataFrame), byte(len(tidbuf) + 4 + 8 + 2),
0x80 | byte(TagOfMetaFrame), byte(len(tidbuf) + 2 + 2),
byte(TagOfTransactionID), byte(len(tidbuf))}
result = append(result, tidbuf...)
result = append(result, byte(TagOfSourceID), 0x0)
result = append(result, 0x80|byte(TagOfPayloadFrame), 0x06,
userDataTag, 0x04, 0x79, 0x6F, 0x6D, 0x6F)
assert.Equal(t, result, d.Encode())
}
func TestDataFrameDecode(t *testing.T) {
var userDataTag byte = 0x15
buf := []byte{
0x80 | byte(TagOfDataFrame), 0x10,
0x80 | byte(TagOfMetaFrame), 0x06,
byte(TagOfTransactionID), 0x04, 0x31, 0x32, 0x33, 0x34,
0x80 | byte(TagOfPayloadFrame), 0x06,
userDataTag, 0x04, 0x79, 0x6F, 0x6D, 0x6F}
data, err := DecodeToDataFrame(buf)
assert.NoError(t, err)
assert.EqualValues(t, "1234", data.TransactionID())
assert.EqualValues(t, userDataTag, data.GetDataTag())
assert.EqualValues(t, []byte("yomo"), data.GetCarriage())
}