@@ -2,6 +2,8 @@ package y3
22
33import (
44 "testing"
5+
6+ "github.com/stretchr/testify/assert"
57)
68
79// 每个Packet最小长度是2个bytes
@@ -18,6 +20,8 @@ func TestPacketWrongLength(t *testing.T) {
1820 buf := []byte {0x04 , 0x00 , 0x02 , 0x01 }
1921 expected := "malformed, Length can not smaller than 1"
2022 _ , _ , _ , err := DecodePrimitivePacket (buf )
23+ assert .NoError (t , err )
24+
2125 if err != nil && err .Error () != expected {
2226 t .Errorf ("err should %v, actual = %v" , expected , err )
2327 }
@@ -27,51 +31,33 @@ func TestPacketWrongLength(t *testing.T) {
2731func TestPacketRead (t * testing.T ) {
2832 buf := []byte {0x04 , 0x01 , 0x7F }
2933 expectedTag := byte (0x04 )
30- var expectedLength int32 = 1
34+ var expectedLength uint32 = 1
3135 expectedValue := []byte {0x7F }
3236
3337 res , endPos , _ , err := DecodePrimitivePacket (buf )
34- if err != nil {
35- t .Errorf ("err should nil, actual = %v" , err )
36- }
37-
38- if res .SeqID () != expectedTag {
39- t .Errorf ("res.Tag actual = %v, and Expected = %v" , res .SeqID (), expectedTag )
40- }
38+ assert .NoError (t , err )
4139
42- if res .length != uint32 (expectedLength ) {
43- t .Errorf ("res.Length actual = %v, and Expected = %v" , res .length , expectedLength )
44- }
40+ assert .Equal (t , expectedTag , res .SeqID ())
41+ assert .Equal (t , expectedLength , res .length )
4542
4643 if ! _compareByteSlice (res .valBuf , expectedValue ) {
4744 t .Errorf ("res.raw actual = %v, and Expected = %v" , res .valBuf , expectedValue )
4845 }
4946
50- if endPos != 3 {
51- t .Errorf ("endPos actual = %v, and Expected = %v" , endPos , 3 )
52- }
47+ assert .Equal (t , endPos , 3 )
5348}
5449
5550// 测试读取 0x0A:2
5651func TestParseInt32 (t * testing.T ) {
57- // 原例子数据存在问题,修改如下:
58- //buf := []byte{0x0A, 0x02, 0x01, 0x02}
5952 buf := []byte {0x0A , 0x02 , 0x81 , 0x7F }
60- expected := int32 (255 )
53+ expectedValue := int32 (255 )
6154
6255 res , _ , _ , err := DecodePrimitivePacket (buf )
63- if err != nil {
64- t .Errorf ("err should nil, actual = %v" , err )
65- }
66-
67- val , err := res .ToInt32 ()
68- if err != nil {
69- t .Errorf ("err should nil, actual = %v" , err )
70- }
56+ assert .NoError (t , err )
7157
72- if val != expected {
73- t . Errorf ( "value actual = %v, and Expected = %v" , val , expected )
74- }
58+ target , err := res . ToInt32 ()
59+ assert . NoError ( t , err )
60+ assert . Equal ( t , expectedValue , target )
7561}
7662
7763// 测试 0x0B:"C"
@@ -80,18 +66,24 @@ func TestParseString(t *testing.T) {
8066 expectedValue := "C"
8167
8268 res , _ , _ , err := DecodePrimitivePacket (buf )
83- if err != nil {
84- t .Errorf ("err should nil, actual = %v" , err )
85- }
69+ assert .NoError (t , err )
8670
8771 target , err := res .ToUTF8String ()
88- if err != nil {
89- t . Errorf ( "err should be nil, actual = %v" , err )
90- }
72+ assert . NoError ( t , err )
73+ assert . Equal ( t , expectedValue , target )
74+ }
9175
92- if expectedValue != target {
93- t .Errorf ("Result actual = %v, and Expected = %v" , t , expectedValue )
94- }
76+ // 测试 0x0B:"C"
77+ func TestParseEmptyString (t * testing.T ) {
78+ buf := []byte {0x0B , 0x00 }
79+ expectedValue := ""
80+
81+ res , _ , _ , err := DecodePrimitivePacket (buf )
82+ assert .NoError (t , err )
83+
84+ target , err := res .ToUTF8String ()
85+ assert .NoError (t , err )
86+ assert .Equal (t , expectedValue , target )
9587}
9688
9789// compares two slice, every element is equal
0 commit comments